[우아한테크코스] 8월 30일 TIL
level 4
HTTP 서버부터 프레임워크까지 직접 구현해보며 이해도를 높인다.
-
어떤 개발자가 되고 싶은가?
특정 라이브러리, 프레임워크에 의존적인 개발자? 어떤 환경에서도 문제를 해결할 수 있는 개발자?
포비의 자바 웹 프로그래밍 next step, di 까지 해볼 수 있다??
HTTP 서버 만들기
-
흐름 이해하기
-
현재 동작하고 있는 포트가 있는지 찾는다. 없으면 8080으로 지정한다.
-
웹 서버를 해당 포트로 생성한다. 이때 포트 번호가 올바르지 않으면 8080으로 포트를 재지정한다.
포트번호는 0~65535까지 사용할 수 있다. 16비트 범위 내
0~1023: well-known port
1024~49151: registered port
49152~65535: dynamic port
-
웹 서버를 동작한다.
-
서버소켓을 포트번호를 전달해 생성한다.
서버소켓: SocketImpl 클래스의 구현체로 클라이언트에서 서버로 접속하거나 서버에서 accept 하는데 필요한 클래스
-
요청이 들어오기를 기다리다가 요청이 들어오면 (accept한게 비어있지 않으면) 새로운 쓰레드에서 요청을 처리한다. -> 들어온거 읽고 보낼거 보내고
-
-
-
Socket 송수신 과정
-
서버 소켓 생성, 포트 바인딩 (준비)
-
클라이언트로부터의 연결을 기다리고(Connect Listen) 요청이 오면 수락(accpet)
-
클라이언트 소켓에서 가져온 메시지 읽어서 출력
-
응답이 있다면 클라이언트에 데이터를 전송
-
클라이언트에서 받아서 출력
-
서버 종료