HTTP는 웹 상에서 데이터를 주고받기 위한 프로토콜로, 주로 HTML과 같은 웹 페이지를 전송하는데 사용된다
HTTP 요청은 클라이언트가 서버에 데이터를 요청하는 메시지다.
요청 메시지는 세 가지 주요 구성 요소로 나뉜다.
요청 라인은 HTTP 메소드, 요청 URL, 그리고 HTTP 버전으로 이루어진다.
HTTP 메소드 : 서버에 수행할 작업을 지시한다.
요청 URL : 클라이언트가 요청하는 리소스의 위치를 지정한다.
HTTP 버전 : HTTP 프로토콜의 버전 정보
요청 헤더는 클라이언트가 서버에 전달하는 추가적인 정보를 포함한다. 일반적으로 키-값 쌍으로 이루어져 있으며 헤더의 종류에 따라 다양한 정보를 포함할 수 있다.
HTTP 응답은 서버가 클라이언트의 요청에 대한 결과를 전달하는 메시지다.
일반적으로 세 가지 주요 구성 요소로 이루어진다.
상태 라인은 HTTP 버전, 상태 코드, 상태 메시지로 구성된다.
HTTP 버전 : 응답이 사용한 HTTP 프로토콜의 버전
상태 코드 : 서버가 클라이언트의 요청에 대해 응답하는 상태
200 OK : 요청이 성공적으로 처리됨404 Not Found : 요청한 리소스를 찾을 수 없음500 Internal Server Error : 서버 내부 오류 발생상태 메시지 : 상태 코드의 설명을 간단히 제공.
응답 헤더는 서버가 클라이언트에게 전달하는 부가 정보다.
Client Server
| |
| -------- HTTP Request --------> |
| |
| 1. Request Line |
| - Method (GET, POST, etc.) |
| - URL |
| - HTTP Version |
| |
| 2. Request Headers |
| - Host |
| - User-Agent |
| - Accept |
| ... |
| |
| 3. Request Body (optional) |
| |
| |
| <-------- HTTP Response ------- |
| |
| 1. Status Line |
| - HTTP Version |
| - Status Code |
| - Status Message |
| |
| 2. Response Headers |
| - Content-Type |
| - Content-Length |
| - Set-Cookie |
| ... |
| |
| 3. Response Body |
| - Resource (HTML, JSON, etc.) |
| |