2021.12.27

초보개발·2021년 12월 26일
0

TIL

목록 보기
5/17

HTTP 메시지

Start line(시작 줄)

  • request-line
    HTTP 요청은 서버가 특정 동작을 하기 위해 클라이언트에서 전송하는 메시지이다. 시작 줄은 HTTP 메서드, 요청 타겟 그리고 HTTP 버전 세 가지 요소들로 이루어져 있다.
  1. HTTP 메서드 : GET/PUT/POST, HEAD/OPTIONS를 사용해서 서버가 수행할 동작을 나타낸다.
    GET : 리소스 조회
    POST : 요청 내역 처리
  2. 요청 타겟 : 주로 URL, 프로토콜, 포트, 또는 도메인의 절대 경로(/로 시작하는 경로)가 대상이 되고 요청 컨텍스트에 의해 특정지어 진다.
  3. HTTP 버전 : 메시지의 남은 구조를 결정하므로 응답 메시지에 써야 할 HTTP 버전을 알려주는 역할을 한다.
  • status-line(상태 줄)
    HTTP 응답의 시작 줄은 상태 줄이라고 부른다. 상태 줄은 아래와 같은 정보를 포함하고 있다.
  1. HTTP 버전 : 보통 HTTP/1.1 사용
  2. 상태 코드 : 요청의 성공 여부를 나타낸다. (200 : 성공, 400 : 클라이언트 오류, 500 : 서버 내부 오류)
  3. 상태 텍스트 : 사용자들이 이해할 수 있도록 상태 코드에 대한 설명을 짧고 간결하게 쓴 글

HTTP headers

헤더는 HTTP 전송에 필요한 모든 부가 정보들이 포함되어 있다. 예를 들어, 메시지 바디의 내용이나 바디의 크기, 압축 등 다양한 메타데이터들이 들어 있다. 필요시 임의의 헤더를 만들어 추가할 수 있다.
대소문자 구분없이 문자열 다음에 “:”이 붙고 그 뒤에 오는 값은 헤더에 따라 다르다. 헤더는 값까지 포함해 한 줄로 구성되지만 길어질 수 있다.

  • ex) Host: localhost:8080
    Host뒤에는 공백을 허용하지 않는다.

empty line

요청에 대한 모든 메타 데이터가 전송되었음을 알리는 빈 줄이다.

Message body

실제 전송할 데이터들이 들어있다. HTML, 이미지, 영상, JSON 등 byte로 표현 가능한 모든 데이터를 전송할 수 있다. 바디의 존재 유무 및 크기는 첫 줄과 HTTP 헤더에 표기되어 있다.

0개의 댓글