HTTP Messages

Siwoo Pak·2021년 8월 3일
0

http/네트워크

목록 보기
3/12

1. HTTP Messages

  • http는 html과 같은 문서를 전송하기 위한 애플리케이션 레이어 프로토콜.
  • 웹브라우저와 웹 서버의 소통을 위해 디자인됨
  • 특성: 무상태성과 비연결성
  • 유형: 요청(Request)와 응답(response)
  • http messages는 몇 줄의 정보로 구성되며 자동으로 완성됨
  • start(status) line: 요청이나 응답의 상태를 나타내며 항상 첫번째 줄에 위함.
  • HTTP headers: 요청을 지정 및 메시지에 포함된 본문을 설명하는 헤더의 집합
  • empty line: 헤더와 본문을 구분하는 빈 줄
  • body: 요청할 때 보내는 데이터 및 응답할때 보내주는 데이터
  • 이중 start(status) line과 HTTP headers는 head,
    payload는 body

2. Request

2.1 start line

  • 클라이언트가 서버에 보내는 메시지
  • 구성하는 3가지 요소
    • method: get,put,post등
    • 요청 대상 또는 프로토콜, 포트, 도메인의 절대 경로는 요청 컨텍스트에 작성됨
      • origin형식:?와 쿼리문자열이 붙는 절대경로. method와 함께 사용
      • absolute형식: 완전한 URL형식으로 대부분 Get과 함께 사용
        GET http://developer.mozilla.org/en-US/docs/Web/HTTP/Messages HTTP/1.
      • authority형식: 도메인이름과 포트번호로 이루어진 URL로 HTTP터널로 구축하는 경우 CONNECT와 함께 사용가능
        CONNECT developer.mozilla.org:80 HTTP/1.1
      • asterisk형식: OPTIONS와 함께 하나로 서버전체를 표현
        ``` OPTIONS
        HTTP/1.1```

2.2 Headers

  • 세가지로 구성
    • General headers
    • Request Headers
    • Entitiy headers
    • 이것과 관련된 정보는 여기

2.3 Body

  • 요청의 본문은 HTTP messages 구조의 마지막에 위치
  • 모든 요청에 body가 피욜하지 않음
  • GET, HEAD, DELETE, OPTIONS 같은 경우는 정보조회만 하면 되기에
  • 종류
    • Single-resource bodies(단일-리소스 본문) : 헤더 두 개(Content-Type과 Content-Length)로 정의된 단일 파일로 구성됩니다.
    • Multiple-resource bodies(다중-리소스 본문) : 여러 파트로 구성된 본문에서는 각 파트마다 다른 정보를 지닙니다. 보통 HTML form과 관련이 있습니다.

3. Response

  • Request와 구성 요소는 동일, 첫줄의 이름만 다름
  • Statuse line는 다음과 같은 정보를 포함
    • 현제 프로토콜 버전
    • 상태코드
    • 상태코드에 대한 설명
  • Headers
  • Body
    - 모든 응답에 body가 필요하지는 않으며 201, 204와 같은 상태 코드를 가지는 응답에는 본문X
    - 종류
    • Single-resource bodies(단일-리소스 본문) :
      길이가 알려진 단일-리소스 본문은 두 개의 헤더(Content-Type, Content-Length)로 정의합니다.
      길이를 모르는 단일 파일로 구성된 단일-리소스 본문은 Transfer-Encoding이 chunked 로 설정되어 있으며, 파일은 chunk로 나뉘어 인코딩되어 있습니다.
    • Multiple-resource bodies(다중-리소스 본문) : 서로 다른 정보를 담고 있는 body입니다.

3. 무상태성

  • 상태를 가지지 않는다
  • HTTP로 클라이언트와 서버가 통신을 주고 받는 과정에서 HTTP가 클라이언트나 서버의 상태를 확인하지 않음

참고

profile
'하루를 참고 인내하면 열흘을 벌 수 있고 사흘을 참고 견디면 30일을, 30일을 견디면 3년을 벌 수 있다.'

0개의 댓글