HTTP Request와 Response의 구조
request는 클라이언트의 요청, response는 요청에 대한 서버의 응답을 말한다. HTTP 메세지는 ASCII로 인코딩된 텍스트 정보이며, 이러한 메시지는 설정파일 (프록시, 서버), API, 기타 인터페이스에 의해 가공되어 제공된다. http request와 response의 구조는 서로 닮아있다.

HTTP Request 구조
1. Starter line
http method 종류, request target(url), http version 정보를 담고 있다.
- HTTP 메서드는 get, post, put, delete 등이 있다.
- request target은 HTTP request가 전송되는 목표 주소이다.
- http version은 버전에 따라 request 메시지 구조나 데이터가 다를 수 있어서 명시한다.
2. Headers
Key:Value 값으로 해당 request에 대한 추가 정보를 담고 있다.
Host | 요청하려는 서버 호스트 이름, 포트 번호 |
Referer | 바로 직전에 머물렀던 웹 링크 주소 |
User-agent | 클라이언트 프로그램 정보 |
Accept | 클라이언트가 처리 가능한 미디어 타입 종류 나열 |
If-Modified-Since | 작성된 시간 이후로 변경된 리소스 취득. 페이지가 수정되었으면 최신 페이지로 교체 |
Authorization | 인증 토큰을 서버로 보낼 때 쓰이는 Header |
Origin | 서버로 Post 요청을 보낼 때 요청이 어느 주소에서 시작되었는지 나타내는 값. 이 값으로 요청을 보낸 주소와 받는 주소가 다르면 CORS 에러 발생 |
Cookie | 쿠키 값 key:value로 표현된다. Set-Cookie 헤더와 함께 서버로부터 이전에 전송됐던 저장된 HTTP 쿠키 포함 |
3. Body
해당 request가 전송하는 데이터가 담겨있는 부분이다. 전송하려는 데이터가 없다면 비어있게 된다.
Response 구조
1. start line
HTTP version, Status Code, Status Text를 나타낸다.
2. headers
Request의 headers와 거의 동일하다. Response에서만 쓰이는 값이 있다.
Server | 웹 서버의 종류 |
Age | max-age 시간 내에서 얼마나 흘렀는지 초 단위로 알려주는 값 |
Referrer-policy | 서버 referrer 정책을 알려주는 값 (ex. origin, no-referrer, unsafe-url) |
WWW-Authenticate | 사용자 인증이 필요한 자원을 요구할 시 서버가 제공하는 인증 방식 |
Proxy-Authenticate | 요청한 서버가 프락시 서버인 경우 유저 인증을 위한 값 |
Set-Cookie | 서버 측에서 클라이언트에게 세션 쿠키 정보를 설정 (RFC 2965에서 규정) |
3. body
일반적으로 Request의 body와 동일하다.
'NETWORK' 카테고리의 다른 글
[Network] HTTP Status Code (0) | 2024.01.17 |
---|---|
[Network] 웹 서버와 HTTP (0) | 2024.01.16 |
HTTP Request와 Response의 구조
request는 클라이언트의 요청, response는 요청에 대한 서버의 응답을 말한다. HTTP 메세지는 ASCII로 인코딩된 텍스트 정보이며, 이러한 메시지는 설정파일 (프록시, 서버), API, 기타 인터페이스에 의해 가공되어 제공된다. http request와 response의 구조는 서로 닮아있다.

HTTP Request 구조
1. Starter line
http method 종류, request target(url), http version 정보를 담고 있다.
- HTTP 메서드는 get, post, put, delete 등이 있다.
- request target은 HTTP request가 전송되는 목표 주소이다.
- http version은 버전에 따라 request 메시지 구조나 데이터가 다를 수 있어서 명시한다.
2. Headers
Key:Value 값으로 해당 request에 대한 추가 정보를 담고 있다.
Host | 요청하려는 서버 호스트 이름, 포트 번호 |
Referer | 바로 직전에 머물렀던 웹 링크 주소 |
User-agent | 클라이언트 프로그램 정보 |
Accept | 클라이언트가 처리 가능한 미디어 타입 종류 나열 |
If-Modified-Since | 작성된 시간 이후로 변경된 리소스 취득. 페이지가 수정되었으면 최신 페이지로 교체 |
Authorization | 인증 토큰을 서버로 보낼 때 쓰이는 Header |
Origin | 서버로 Post 요청을 보낼 때 요청이 어느 주소에서 시작되었는지 나타내는 값. 이 값으로 요청을 보낸 주소와 받는 주소가 다르면 CORS 에러 발생 |
Cookie | 쿠키 값 key:value로 표현된다. Set-Cookie 헤더와 함께 서버로부터 이전에 전송됐던 저장된 HTTP 쿠키 포함 |
3. Body
해당 request가 전송하는 데이터가 담겨있는 부분이다. 전송하려는 데이터가 없다면 비어있게 된다.
Response 구조
1. start line
HTTP version, Status Code, Status Text를 나타낸다.
2. headers
Request의 headers와 거의 동일하다. Response에서만 쓰이는 값이 있다.
Server | 웹 서버의 종류 |
Age | max-age 시간 내에서 얼마나 흘렀는지 초 단위로 알려주는 값 |
Referrer-policy | 서버 referrer 정책을 알려주는 값 (ex. origin, no-referrer, unsafe-url) |
WWW-Authenticate | 사용자 인증이 필요한 자원을 요구할 시 서버가 제공하는 인증 방식 |
Proxy-Authenticate | 요청한 서버가 프락시 서버인 경우 유저 인증을 위한 값 |
Set-Cookie | 서버 측에서 클라이언트에게 세션 쿠키 정보를 설정 (RFC 2965에서 규정) |
3. body
일반적으로 Request의 body와 동일하다.
'NETWORK' 카테고리의 다른 글
[Network] HTTP Status Code (0) | 2024.01.17 |
---|---|
[Network] 웹 서버와 HTTP (0) | 2024.01.16 |