메시지의 흐름
: HTTP메시지는 메시지의 내용과 의미를 설명하는 텍스트 메타 정보로 시작하고, 선택저으로 데이터가 올 수 있다.
- 메시지의 방향 - 인바운드, 아웃바운드, 업스트림, 다운스트림
메시지의 각 부분
시작줄
- 메서드
: 요청의 시작줄은 메서드로 시작하며, 서버에게 무엇을 해야 하는지 말해준다.
메시지 본문이 있는 것 - POST, PUT
메시지 본문이 없는 것 - GET, HEAD(서버에서 헤더만 가져오는 것), TRACE(과정 추적), OPTIONS(서버가 어떤 메서드를 수행할 수 있는지 확인), DELETE
- 상태 코드
: 응답의 시작줄에 위치하며, 클라이언트에게 무엇이 일어났는지 말해주는 것
전체 범위 | 정의된 범위 | 분류 |
100-199 | 100-101 | 정보 |
200-299 | 200-206 | 성공 |
300-399 | 300-305 | 리다이렉션 |
400-499 | 4000-415 | 클라이언트 에러 |
500-599 | 500-505 | 서버 에러 |
developer.mozilla.org/ko/docs/Web/HTTP/Status
HTTP 상태 코드 - HTTP | MDN
HTTP 상태 코드BCD tables only load in the browser HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 응답은 5개의 그룹으로 나누어집니다: 정보를 제공하는 응답, 성공적인 응
developer.mozilla.org
- 사유 구절
: 응답 시작줄의 마지막 구성요소로 상태 코드에 대한 글로 된 설명 제공
- 버전 번호
: 요청과 응답 메시지 양쪽 모두 기술, 자신이 따르는 프로토콜의 버전을 상대방에게 말해주기 위한 수단
형식 => HTTP/x.y
HTTP/2.22 > HTTP/2.3
헤더
: HTTP 헤더 필드는 요청과 응답 메시지에 추가 정보를 담는다. 이름/값 쌍의 목록으로 구성되어 있다.
헤더 분류
- 일반 헤더
: 클라이언트와 서버 양쪽 모두 사용하며, 다양한 목적으로 사용된다.
ex) Date: Tue, 3 Oct 1974 02:15:00 GMT
일반 정보 헤더, 일반 캐시 해더가 있다.
- 요청 헤더
: 요청에 대한 부가 정보 제공
ex) Accept: */* -> 서버에게 클라이언트가 자신의 요청에 대응하는 어떤 미디어 타입도 받아들일 것임을 의미
요청 정보 헤더, Accept 관련 헤더, 조건부 관련 헤더, 요청 보안 헤더(Authorization, Cookie, Cookie2...), 프락시 요청 헤더 등
- 응답 헤더
: 응답에 대한 부가 정보 제공
ex) Server: Tiki-Hut/1.0 -> 클라이언트가 어떤 종류의 서버와 대화하고 있는가
응답 정보 헤더, 협상 헤더(Accept-Ranges, Vary), 응답 보안 헤더 등
- Entity 헤더
: 본문 크기와 콘텐츠, 리소스 그 자체 서술
ex) Content-Type: text/html -> 데이터 타입이 무엇인지
엔터티 정보 헤더, 콘텐츠 헤더, 엔터티 캐싱 헤더 등
- 확장 헤더
: 명세에 정의되지 않은 새로운 헤더
헤더 문법: 이름, 쉼표, 공백(없어도 됨), 필드 값, CRLF(줄바꿈 문자열) 의 순서
엔터티 본문
: HTTP 메시지의 화물. 이미지, 비디오, HTML문서, 애플리케이션 등 여러 종류의 디지털 데이터를 실어 나를 수 있다.
메서드
* 모든 서버가 모든 메서드를 구현하지는 않는다.
- 안전한 메서드
: GET이나 HEAD 메서드를 사용하는 HTTP 요청의 결과로 서버에 어떤 작용도 없음을 의미한다.
- GET
: 주로 서버에게 리소스를 달라고 요청하기 위해 사용
- HEAD
: GET처럼 행동하지만, 서버는 헤더만을 돌려준다. 본문이 반환되지 않는다.
- 리소스를 가져오지 않고도 무엇인지 알아낼 수 있다,
- 응답의 상태코드를 통해 개체가 존재하는지 확인 할 수 있다.
- 헤더를 확인하여 리소스가 변경되었는지 검사할 수 있다.
- PUT
: 서버가 요청의 본문을 가지고 새 문서를 만들거나, 교체하는 것
- POST
: 서버에 입력 데이터를 전송하기 위해 설계
- TRACE
: 클라이언트에게 자신의 요청이 서버에 도달했을 때 어떻게 보이게 되는지 알려준다. 주로 진단을 위해 사용되며, 어떠한 엔터티 본문도 보낼 수 없다.
- OPTIONS
: 웹 서버에게 특정 리소스에 대해 어떤 메서드가 지원되는지 확인하는 용도
- DELETE
: 서버에게 요청 URL로 지정한 리소스를 삭제하도록 요청. but, 삭제가 수행되는 것을 보장하지 X
'개발도서 읽기 > HTTP 완벽 가이드' 카테고리의 다른 글
[2. HTTP 아키텍처] 6장) 프락시 (0) | 2021.04.29 |
---|---|
[2. HTTP 아키텍처] 5장) 웹 서버 (0) | 2021.04.25 |
[1. HTTP: 웹의 기초] 4장) 커넥션 관리 (0) | 2021.04.18 |
[1. HTTP: 웹의 기초] 2장) URL과 리소스 (0) | 2021.04.11 |
[1. HTTP: 웹의 기초] 1장) HTTP 개관 (0) | 2021.04.10 |