[서버] 브라우저 HTTP 클라이언트-서버 동작 과정
와이어샤크를 통해 브라우저의 주소창에 www.naver.com 을 입력하고.. 패킷을 캡쳐하여 어떤 일들이 발생하나 간단하게 보겠습니다.
가로로 너무 긴 사진이라.. 반으로 잘랐습니다.
1. 예상대로 브라우저는 DNS에게 www.naver.com은 서버 ip주소가 어디인지 query를 합니다.
192.168.55.56은 저의 사설 ip주소입니다. 와이어샤크에서 본인의 ip는 사설 주소로 뜨나봐요.
그리고 DNS 쿼리를 한 곳의 주소인 210.220.163.82는 찾아보니 SK 브로드밴드의 기본 DNS 서버 주소입니다.
여기 DNS에 "네이버 홈페이지 접속하려면 어디 ip주소로 접속을 해야하니?" 라고 물어보니
DNS는 "응 125.209.222.141이나 223.130.195.95로 접속하면 돼"라고 알려줍니다.
실제로 주소창에 www.naver.com 이 아닌 125.209.222.141이나 223.130.195.95를 입력하면 네이버로 접속이 됩니다.
2. 브라우저는 DNS를 통해 얻은 주소로 http request 메시지를 작성해서 보냅니다.
3. 이를 받은 네이버 서버는 response 메시지를 작성해서 보냅니다.
이 과정의 패킷은 관심있는 것만 보기 위해 와이어샤크에 필터를 걸어서 봤습니다.
(ip.src == 192.168.55.56 && ip.dst == 125.209.222.141) || (ip.src == 125.209.222.141 && ip.dst == 192.168.55.56)
처음은 TCP 3-way handshake를 통하여 시작됩니다.
4. 브라우저는 네이버 서버로부터 여러 response 메시지들을 받게 되고 이 데이터들을 잘.. 렌더링?하여 사용자에게 보여주게 됩니다.
기타
Ack가 1에서 갑자기 518로 변해서 왜 그런가 생각해보니 바로 전에 TLSv1.3 프로토콜로 전송된 패킷의
Transmission Control Protocol의 Len만큼 증가하는 것 같습니다. TLSv1.3은 SSL 관련된 내용이지 않을까요? ㅎㅎ
그리고 64106 -> 443이니 하는 것은.. 포트 번호입니다. ㅎㅎ
tcp 3way handshake 이후에 ssl handshake도 보이네요.
(참고: www.tuwlab.com/ece/26967)
댓글 영역