컴퓨터 공학(CS)/네트워크 기본 정보
HTTP 요청 생성 및 분석
GrapeMilk
2024. 8. 23. 01:59
nc example.com 80
nc (netcat) 명령어를 터미널에 입력하면 간단하게 TCP 연결을 생성할 수 있다.
GET / HTTP/1.0
Host: example.com
그 다음 GET 요청을 작성한 뒤 엔터를 누르면 response를 받을 수 있다.
터미널에서 명령어를 통해 간단하게 TCP 연결 및 HTTP 요청을 수행했다! HTTP 요청과 응답을 하나씩 뜯어보면
request header 분석
GET / HTTP/1.0
GET: HTTP method를 의미
/: 요청 url
HTTP/1.0: HTTP 버전
Host: example.com: 요청 도메인 이름
response header 분석
HTTP/1.0 200 OK
HTTP/1.0: HTTP 버전
200 OK: 응답 상태 코드
그 외 key:value 형식으로 다양한 응답값이 있다.
response에는 header와 payload가 존재한다. payload는 위의 사진에 일부 잘린 html이며 header와 엔터로 구분된다.
HTTP 1.0과 1.1
HTTP 1.0은 많은 단점이 있는데 그 중 하나는 multiple request가 되지 않는 것이다. 위에서 실습한 nc 명령어에 HTTP 버전을 1.1로 바꾸면 request한 뒤 한번더 요청이 가능하다. (1.0으로 연결하면 한 번 요청을 보내고 연결이 끊어진다) 이러한 단점은 TCP handshake 시간지연에 따른 비효율로 1.1에서 개선되었다.