What is HTTP message Body?

allzeroyou·2022년 2월 4일
0

네트워크

목록 보기
2/3
post-thumbnail

1. HTTP

HTTP(Hyper Text Transfer Protocol)
대량의 정보가 있는 곳이라면 효율적인 처리를 위한 규칙이 존재하기 마련.

예) 주식시장에서 거래를 하고 싶다면? 계좌, 거래일자, 거래 금액 등 규칙에 맞게 거래를 해야
HTTP란 HTML(웹 문서를 만들기 위한 언어)를 주고 받는데 쓰이는 통신 프로토콜이며, TCP와 UDP를 사용해 통신하며 80번 포트를 사용하는 통신프로토콜.

Wait.. TCP? UDP??

2. HTTP 특징

HTTP는 연결상태를 유지하지 않는 비연결성 프로토콜이다. 따라서 클라이언트가 이전에 요청한 내용을 기억하지 않고 있다.
비연결성의 단점을 해결하기 위해 Cookie와 Session이 등장.
비연결성 프로토콜이므로 요청/응답 방식으로 동작
HTTP가 전체 인터넷 프로토콜에서 위치하는 곳은 응용계층이다.

  • 응용 계층(HTTP, DNS, FTP)
  • 전송 계층(TCP, UDP, SCTP)
  • 네트워크 계층(IP, ARP, RARP)
  • 링크 계층(이더넷, WIFI, 토큰링)

3. HTTP 메시지

클라이언트와 서버 간에 데이터가 교환되는 방식(HTTP 통신과정)
HTTP 메시지는 ASCII로 인코딩된 텍스트 정보이며 여러 줄로 되어 있음

이때, 메시지 타입은 2가지

3-1. 요청(request)

클라이언트가 서버로 서버의 액션이 일어나게끔 하는 메시지
웹브라우저의 URL을 통해 어느 웹사이트(도메인)의 어느 경로의 페이지를 요청할 지 나타냄.

request 메시지 구조


1. Request-Line
URL 정보, 요청방식(GET, POST, PUT) 등을 나타냄


2. *(( general-header | request-header | entity-header ) CRLF)

헤더정보이며 요청하는 클라이언트 PC, 브라우저 정보, 사용자언어환경, 쿠키 등 다양한 클라이언트 환경에 대한 정보를 담고 있음.

따라서 헤더영역에 존재하는 데이터는 보안에 취약.


3. CRLF
CRLF는 Carriage Return과 Line Feed를 의미하며
키보드의 엔터키와 동일한 기능을 한다.


4. [ message-body ]
주로 클라이언트가 입력한 데이터를 저장.
입력 폼에 입력한 데이터가 Method방식에 따라 서버로 전송될때 보안이 강화된 방식으로 message-body에 넣어 전달됨.

3-2. 응답(response)

요청에 대한 서버의 답변
요청된 정보에 대해 웹 서버가 클라이언트에게 보내는 응답 형식 및 결과를 나타냄.

response 메시지 구조


1. Status-Line
응답 상태 정보 표시 라인, HTTP 버전 정보와 상태 코드값을 통해 응답 결과를 나타냄.


2. *(( general-header | response-header | entity-header ) CRLF)

헤더정보이며 각종 서버 및 웹 사이트 관련 환경정보를 제공함.


3. CRLF
CRLF는 Carriage Return과 Line Feed를 의미하며
키보드의 엔터키와 동일한 기능을 함.


4. [ message-body ]
주로 서버에서 클라이언트에게 전달되는 HTML 소스 및 포함된 데이터를 저장.

4. HTTP Header

4-1. General header

요청과 응답에 모두 적용되며, 데이터와는 관련이 없는 헤더
Date나 Connection(서버와 클라이언트 간의 연결에 대한 옵션)

4-2. Request header

요청한 클라이언트에 대한 자세한 정보 포함하는 헤더
Host, User-Agent, Cookie 등

4-3. Response header

서버 자체에 대한 정보, 응답에 대한 부가정보를 포함하는 헤더
Server, Allow, Access-Control-Allow-Origin 등

4-4. Entity header

콘텐츠의 길이나 타입에 대한 정보를 포함하는 헤더
Content-Type, Content-Length 등

출처

https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
https://velog.io/@doomchit_3/Internet-HTTP-개념차렷-IMBETPY

profile
모든 건 zero 부터, 차근차근 헛둘헛둘

0개의 댓글