1. Request
HTTP통신에서 Request는 아래와 같이 4개의 영역으로 나누어 볼 수 있다.
1. Request Line : HTTP Method, 요청 대상 URL, 사용되는 HTTP 프로토콜 버전
2. Request Header : Host(요청이 전송되는 서버의 도메인 이름), User-Agent(클라이언트에 대한 정보),
Accept(클라이언트가 받을 수 있는 데이터타입), Content-Type(요청 Body의 데이터타입)
Content-type은 HTTP 헤더의 일부분으로서 요청이나 응답에 포함된 데이터의 유형을 명시하는 항목이다.
이를 명확하게 명시해주어야만이 클라이언트와 서버가 올바르게 데이터를 주고받을 수 있다.
3. 공백라인 : 헤더와 Body사이에 존재하는 공백으로 헤더와 Body를 구분하는 구분자 역할을 한다.
이러한 구분자가 존재해야지 서버와 클라이언트가 메시지를 올바르게 파싱한다.
POST /example.html HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 13
name=John+Doe
위와 같은 요청에서 볼 수 있듯이 만약 공백라인이 없다면 서버와 클라이언트는 Body내용을 Header로 착각하여 해석할 수 있다.따라서 위와 같이 공백라인을 통해서 Header와 Body가 구분짓는 것이다.
4. Body : 요청과 함께 전달되는 데이터로서 필수적인 것은 아니다. ( ex : Get method )
2. Response
1. Status Line : 상태 라인은 HTTP 버전, 상태 코드, 그리고 상태 메시지를 포함한다.
상태 코드는 3자리 숫자로 이루어져 있으며, 서버가 요청을 처리한 결과를 명시한다.
예를 들어, '200'은 성공을 나타내며 '404'는 요청한 리소스를 찾을 수 없음을 의미한다.
2. 헤더(Headers): 일반적으로 사용되는 헤더에는 Content-Type(응답 본문의 데이터 유형),
Content-Length(응답 본문의 길이), Set-Cookie(Cookie 설정), Cache-Control(캐싱 동작 제어) 등이 존재한다.
3. 공백 라인: Request와 마찬가지로 header와 body를 구분짓는 공백라인이 존재한다.
4. 본문(Body) : Response와 함께 전송되는 데이터를 의미하며 이 역시 request와 마찬가지로 필수적이지 않다.
예를 들어, '204 No Content'와 같은 일부 상태 코드에서는 Response Body 내용이 없다.
'네트워크' 카테고리의 다른 글
Content-Disposition Header (1) | 2024.01.05 |
---|---|
Apache HTTP Server와 WAS를 연동하여 사용하는 이유 (0) | 2023.10.19 |
VPN 터널링과 SSH가 함께 사용될 때, 작동 방식 (0) | 2023.09.13 |
이더넷(Ethernet)이란 무엇인가? (0) | 2023.06.07 |
POST와 PUT 메소드의 차이점 (0) | 2023.04.13 |