1. HTTP 프로토콜 분석
wireshark를 이용해, HTTP 프로토콜과 헤더 구조를 분석한다.
No.2 패킷은 No.1 패킷의 요청에 대해서 응답을 하는 패킷으로 200 OK라는 것을 통해 해당 요청이 성공적으로 처리됐다는 것을 확인할 수 있다.
해당 패킷 또한 HTTP 1.1 버전을 사용하고 있으며, 요청, 응답 패킷 모두 사용하는 Date라는 헤더를 통해 메시지가 생성된 날짜, 시각 정보를 확인할 수 있으며, Content-Type을 통해 본문이 HTML 문서라는 점을 확인할 수 있다.
Server는 아파치 서버를 사용하는 것을 확인할 수 있으며, ETag를 통해서 캐시된 자원이 최신상태인지 확인하는 것을 확인할 수 있으며, Connection을 통해서 추가적인 연결을 하지 않는다는 것을 확인했다.
본문내용은 HTTP 프로토콜 아래에 Line-based text data: text/html에서 확인할수 있다.
No. 3 패킷은 http://info.cern.ch/에 접속한 후 첫 번째 글머리 기호에 있는 "Browse the first website"를 클릭했을 때 캡처되는 요청 패킷이다.
이 요청은 GET 메서드를 사용하고 있으며 HTTP 1.1 버전을 사용하고 있다. 요청의 대상 호스트는 'info.cern.ch'이며, Connection 헤더를 통해 클라이언트가 서버와의 지속 연결을 원하고 있음을 알 수 있다.
User-Agent 헤더는 요청을 보내는 클라이언트 측 프로그램에 대한 정보를 제공한다. Referer 헤더를 통해 클라이언트가 이 요청을 보내기 직전에 머물렀던 URL이 http://info.cern.ch/임을 확인할 수 있다.
Accept-Encoding 헤더는 클라이언트가 받아들일 수 있는 인코딩 방식을, Accept-Language 헤더는 클라이언트가 선호하는 콘텐츠 언어를 서버에 알려주는 역할을 한다. 이러한 헤더들은 콘텐츠 협상의 일부로, 서버가 클라이언트에게 가장 적합한 형태의 콘텐츠를 제공할 수 있도록 돕는다.
참고자료
[1] 혼자 공부하는 네트워크. 강민철 저. 한빛미디어, 2024.