-
(HTTP) 9 - HTTP 메시지개발/HTTP 2024. 10. 31. 09:38
HTTP 메시지 구조는 4가지로 구분된다.
1. start-line (시작 라인)
2. header (헤더)
3. empty line (공백 라인)
4. message body (메세지 바디)
■ 요청 메시지
1. start-line (시작 라인) : 메서드 + 경로값 + 쿼리 + HTTP 버전
2. header (헤더) : 호스트명
3. empty line (공백 라인)
※ 전달할 값 있다면 요청 메시지도 body 본문 가질 수 있다.
■ 응답 메시지
1. start-line (시작 라인) : HTTP 버전 + 상태 코드값
2. header (헤더) : Content-Type + 문자 형태 + 데이터 양
3. empty line (공백 라인)
4. message body (메세지 바디) : 필요한 HTTP 응답 메시지 (보통 html 파일 내용)
■ 시작 라인 (요청 메세지)
시작 요청 라인은 request-line 이라고 한다.
구성은 다음과 같이 3개로 이루어진다.
* method : HTTP 메서드
- 종류 : GET(리스스 조회), POST(요청 내역 처리), PUT(수정), DELETE(삭제)
- 서버가 수행해야 할 동작 지정
* request-target : 요청 대상(path)
절대경로[?쿼리]
* HTTP Version : HTTP 버전
■ 시작 라인 (응답 메세지)
시작 응답 라인은 status-line 이라고 한다.
구성은 다음과 같이 3개로 이루어진다.
* HTTP 버전
* HTTP 상태 코드 : 요청 성공, 실패 나타냄
- 200 : 성공
- 400 : 클라이언트 요청 오류
- 500 : 서버 냊부 오류
* 이유 문구 : 200 코드는 사람이 보기에 어려우므로, 사람이 이해할 수 있는 짧은 상태 코드 설명
■ HTTP 헤더
field-name 은 대소문자 구분 없으나 value 는 구분 있음
* 용도
- HTTP 전송에 필요한 모든 부가 정보 다 있음
ex) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트(브라우저) 정보,
서버 애플리케이션 정보, 캐시 관리 정보 등 -> 표준 메타 정보가 다 있음
- 표준 헤더가 너무 많음
- 필요 시 임의의 헤더 추가 가능
ex) helloworld: hihi
■ HTTP 메시지 바디
- 실제 전송할 데이터
- HTML 문서, 이미지, 영상, JSON 등 byte 표현하는 모든 데이터 전송 가능
- 압축으로 보내면 압축된 내용이 메시지 바디에 들어감
단순하지만 확장 가능하기 때문에 http 성공했다고 볼 수 있다.
■ 정리
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
'개발 > HTTP' 카테고리의 다른 글
(HTTP) 11 - HTTP 메서드 속성 (안전, 멱등, 캐시가능) (0) 2024.10.31 (HTTP) 10 - HTTP 메서드 (GET, POST, PUT, PATCH, DELETE) (0) 2024.10.31 (HTTP) 8 - connectionless (비연결성) (2) 2024.10.31 (HTTP) 7 - Stateful(상태 유지), Stateless(무상태) (0) 2024.10.31 (HTTP) 6 - HTTP 란? (0) 2024.10.30