개발을 하면서 response, request 등등 HTTP통신을 하는데 HTTP의 값을 통해 많은 것을 얻을 수 있다.
정의 : 하이퍼 텍스트 전송 프로토콜(HTTP, Hyper Text Transport Protocol) 통신을 사용하면 클라이언트와
서버 간에 두 가자이 유형의 메시지(HTTP 요청 및 HTTP 응답)을 전송할 수 있다.
클라이언트가 요청을 서버로 보내고 서버가 브라우저로 응답을 보낸다. 두 메시지는 공통 포맷을 가지고 있고
HTTP 헤더와 HTTP 본문을 포함한다.
1) Header(Request)
클라이언트가 서버에 보낼 때의 헤더이다.
1) Content-Type : application/json; charset=UTF-8
요청 본문의 데이터 유형을 나타낸다.
2) Referer : http://localhost:8080/
요청이 발생한 웹 페이지의 URL을 나타낸다.
3) sec-ch-ua
이 헤더는 클라이언트 힌트(이전의 User-Agent 문자열의 일부)를 나타낸다.
사용중인 브라우저가 Chromium 기반의 Google Chrome이라는 것을 나타내고 있고 각각의 버전 정보를 포함하고 있다.
4) sec-ch-ua-mobile: ?0
이 헤더는 클라이언트가 모바일 장치인지 여부를 나타낸다.
5) sec-ch-ua-platform: "Windows"
이 헤더는 클라이언트가 실행 중인 운영체제를 나타낸다. 이 경우, Windows운영체제를 사용하고 있다.
6) User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
클라이언트 애플리케이션의 정보를 나타낸다.
- Mozilla/5.0: 호환성을 위해 대부분의 브라우저가 사용하는 문자열
- Windows NT 10.0; Win64; x64: 클라이언트가 Windows 10 운영체제의 64비트 버전임을 나타낸다.
- AppleWebKit/537. 36 (KHTML, like Gecko) : 클라이언트가 WebKit 기반의 브라우저 엔진을 사용함을 나타낸다.
- Chrome/112.0.0.0 Safari/537.36: 클라이언트가 Chrome 브라우저의 112 버전을 사용하고 있으며, WebKit 엔진을 사용함을 나타냅니다.
2) Header(Response)
1) Connection : keep-alive
이 헤더는 클라인트와 서버 간의 연결을 유지하겠다는 뜻입니다. 'keep-alive'는 하나의 TCP연결을 여러 HTTP
요청/응답 사이에서 재사용할 수 있게 한다. 이는 성능 향상과 네트워크 자우너 절약에 도움이 된다.
2) Connection : Content-Type: application/json
응답 본문의 데이터 유형을 나타낸다.
3) Date: Mon, 17 Apr 2023 06:15:48 GMT
서버가 응답을 생성한 날짜와 시간을 나타낸다.
4) Keep-Alive: timeout=60
'keep-alive' 연결의 유지 시간을 지정한다. 'timeout=60'은 이 연결이 60초 동안 유휴 상태일 경우 서버가 연결을
닫을 수 있음을 나타낸다.
5) Transfer=Encoding: chunked
이 헤더는 응답 본문이 청크 인코딩(chunked encoding) 방식으로 전송됨을 나타냅니다. 청크 인코딩은 데이터가 조각(chunks)으로 나누어져 전송되는 방식입니다. 각 청크는 크기를 나타내는 16진수 숫자와 실제 데이터로 구성됩니다. 클라이언트는 이 청크들을 순차적으로 수신하고 조립하여 전체 응답 본문을 구성합니다.
3) Body(Request, Response)
클라이언트와 서버의 실질적 내용을 포함한다.
'CS > 네트워크' 카테고리의 다른 글
[ Broadcast ] [ Broadband ], OSI 7계층 장비 (2) | 2024.07.23 |
---|---|
[ blocking I/O ], [ non-blocking I/O ], [ sync ], [ async ] (0) | 2024.06.20 |
IP 관련 개념 ☎ (0) | 2024.06.17 |
[ TCP/IP 4계층 ] vs [ OSI 7계층 ] Re (0) | 2024.06.17 |
HTTP, Socket, WebSocket (0) | 2024.06.17 |