[우아한테크코스] 8월 30일 TIL

less than 1 minute read

level 4

HTTP 서버부터 프레임워크까지 직접 구현해보며 이해도를 높인다.

  • 어떤 개발자가 되고 싶은가?

    특정 라이브러리, 프레임워크에 의존적인 개발자? 어떤 환경에서도 문제를 해결할 수 있는 개발자?

포비의 자바 웹 프로그래밍 next step, di 까지 해볼 수 있다??

HTTP 서버 만들기

  • 흐름 이해하기

    1. 현재 동작하고 있는 포트가 있는지 찾는다. 없으면 8080으로 지정한다.

    2. 웹 서버를 해당 포트로 생성한다. 이때 포트 번호가 올바르지 않으면 8080으로 포트를 재지정한다.

      포트번호는 0~65535까지 사용할 수 있다. 16비트 범위 내

      0~1023: well-known port

      1024~49151: registered port

      49152~65535: dynamic port

    3. 웹 서버를 동작한다.

      1. 서버소켓을 포트번호를 전달해 생성한다.

        서버소켓: SocketImpl 클래스의 구현체로 클라이언트에서 서버로 접속하거나 서버에서 accept 하는데 필요한 클래스

      2. 요청이 들어오기를 기다리다가 요청이 들어오면 (accept한게 비어있지 않으면) 새로운 쓰레드에서 요청을 처리한다. -> 들어온거 읽고 보낼거 보내고

  • Socket 송수신 과정

  1. 서버 소켓 생성, 포트 바인딩 (준비)

  2. 클라이언트로부터의 연결을 기다리고(Connect Listen) 요청이 오면 수락(accpet)

  3. 클라이언트 소켓에서 가져온 메시지 읽어서 출력

  4. 응답이 있다면 클라이언트에 데이터를 전송

  5. 클라이언트에서 받아서 출력

  6. 서버 종료