모든 것이 HTTP
HTTP 메시지에 모든 것을 전송할 수 있다.


시작라인
크게 request-line / status-line으로 나뉜다.
start-line = request-line/status-line
요청 메시지
request-line = method SP(공백) request-target SP HTTP-version CRLF(엔터)
-HTTP 메서드
종류 : GET, POST, PUT, DELETE...
서버가 수행해야 할 동작 지정
GET : 리소스 조회
POST : 요청 내역 처리
-요청대상(/search?q=hello&hl=ko)
absolute-path[?query](절대경로[?쿼리])
절대경로="/"로 시작하는 경로
-HTTP Version
HTTP 버전을 넣는다.
응답 메시지
status-line = HTTP-version SP status-code SP reason-phrase CRLF
-HTTP 버전
-HTTP 상태 코드
200 : 성공
400 : 클라이언트 요청 오류
500 : 서버 내부 오류
-이유 문구
사람이 이해할 수 있는 짧은 상태 코드 설명 글
HTTP 헤더
header-field = field-name ":" OWS field-value OWS (OWS : 띄어쓰기 허용)
용도
HTTP 전송에 필요한 모든 부가정보가 들어가 있다.
예) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트 정보, 서버 애플리케이션, 캐시 관리 정보...
표준 헤더가 너무 많음
필요시 임의의 헤더 추가 가능
HTTP 메시지 바디
용도
실제 전송할 데이터
HTML문서, 이미지, 영상, JSON 등등 byte로 표현할 수 있는 모든 데이터 전송 가능
단순함 확장 가능
HTTP는 단순하다.
HTTP 메시지도 매우 단순
크게 성공하는 표준 기술은 단순하지만 확장 가능한 기술
'웹프로그래밍 > 웹 기본 지식' 카테고리의 다른 글
| 14. HTTP 메서드 - GET, POST (0) | 2021.12.29 |
|---|---|
| 13. HTTP API를 만들어보자 (0) | 2021.12.29 |
| 11. 비 연결성(Connectionless) (0) | 2021.12.28 |
| 10. Stateful, Stateless (0) | 2021.12.23 |
| 9. 클라이언트 서버 구조 (0) | 2021.12.23 |