이전 블로그에서 간단하게 소개했던 HTTP의 특징에 대해 더 알아보자
HTTP 메시지
- HTTP 메시지에 모든 것을 전송함
- HTML, TEXT, 이미지, 음성, 영상, 파일, json, xml 등 전부...
그럼 HTTP 메시지는 어떻게 전송되는지 보자
GET /search?q=hello&hl=ko HTTP/1.1 Host: www.google.com |
- HTTP 요청 메시지
HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 3423 <html> <body>...</body> </html> |
- HTTP 응답 메시지
start-line 시작 라인 header 헤더 empty line 공백 라인 (CRLF) message body |
요청 메시지와 응답 메시지의 구조는 위와 같은 HTTP 메시지 구조로 이뤄져 있다.
구조 내 요소에 대해서 알아보자
요청 메시지의 경우
- start-line = request-line / status-line
- request-line = method SP(공백) request-target SP HTTP-version CRLF(엔터)
- HTTP 메서드 (GET : 조회)
- 요청 대상 (/search?q=hello&hl=ko)
- HTTP Version
응답 메시지의 경우
- start-line =request-line / status-line
- status-line = HTTP-version SP status-code SP reason-phrase CRLF
- HTTP status
- HTTP version
- 이유 문구 : 사람이 이해할 수 있는 짧은 상태 코드 설명 글(ex : Not Found, Internal Serval Error)
HTTP 헤더
- header-field = field-name ":" OWS field-value OWS (OWS : 띄어쓰기 허용)
- field-name은 대소문자 구분을 하지 않음
- 용도 : HTTP 전송에 필요한 모든 부가 정보
- ex : 메시지 바디 크기, 타입, 인증, 압축, 요청 클라이언트의 정보,
- 표준 헤더가 너무 많음
HTTP 메시지 바디
- 실제 전송할 데이터
- HTML 문서, 이미지, 영상 등 byte로 표현 가능한 모든 것
HTTP의 단순함, 확장 가능에 대해
- 스펙도 읽어볼만 함. 단순함.
- 메시지도 단순함
- 크게 성공하는 표준 기술은 단순하지만 확장 가능한 기술!
반응형
'IT 공부 > 새로운 시작' 카테고리의 다른 글
HTTP(7) - HTTP 메서드을 알아보자(1) (0) | 2021.10.20 |
---|---|
HTTP(6) - HTTP 메소드 (0) | 2021.10.17 |
HTTP(4) - HTTP의 기본 특징(1) (0) | 2021.10.16 |
HTTP(3) - 웹 브라우저의 요청 흐름 (0) | 2021.10.10 |
HTTP(2) - URI (0) | 2021.10.07 |
댓글