#1. 메시지의 흐름
- HTTP는 인바운드와 아웃바운드라는 용어를 트랜잭션 방향을 표현하기 위해 사용한다.
- 메시지가 원 서버로 이동하는 것은 인바운드로 이동한 것이다.
- 모든 처리가 끝난 뒤에 메시지가 사용자 에이전트로 돌아오는 것은 아웃바운드로 이동한 것이다.
- 요청 메시지, 응답 메시지 관계없이 모든 메시지는 다운스트림으로 흐른다.
#2. 메시지의 각 부분
- 메시지는 시작줄, 헤더 블록, 본문 세 부분으로 구성되어 있다.
- 시작줄은 어떤 메시지인지 서술하고, 헤더 블록은 속성을, 본문은 데이터를 담고 있다. (본문은 비어있을 수 있음)
- 헤더의 Content-Type은 본문이 무엇인지 말하며, Content-Length는 본문의 크기를 말한다.
- 모든 HTTP 메시지는요청 메시지나 응답 메시지로 분류된다. 요청 메시지는 웹 서버에 어떤 동작을 요구하고, 응답 메시지는 요청의 결과를 클라이언트에게 돌려준다.
요청 메시지의 형식 응답 메시지의 형식
<메서드><요청 URL><버전> <버전><상태코드><사유 구절>
<헤더> <헤더>
<엔터티 본문> <엔터티 본문>
- 메서드 : 클라이언트 측에서 서버가 리소스에 대해 수행해주길 바라는 동작
- 요청 URL : 요청 대상이 되는 리소스를 지칭하는 완전한 URL의 경로 구성요소
- 버전 : 사용 중인 HTTP의 버전
- 상태코드 : 요청 중에 무엇이 일어났는지 설명하는 세 자리 숫자 (200, 404...)
- 사유 구절: 상태코드의 의미를 설명해주는 짧은 문구
- 헤더 : 이름, 콜론(:), 선택적인 공백, 값, CRLF 순서, 빈줄(CRLF)로 끝나 헤더목록의 끝과 엔터티 시작을 표시
- 엔터티 본문: 임의의 데이터 블록을 포함, 모든 메시지가 엔터티 본문을 갖지 않음.
#3. 메서드와 상태코드
HTTP 메서드 : https://developer.mozilla.org/ko/docs/Web/HTTP/Methods
- GET : 가장 흔히 쓰이는 메서드, 서버에게 리소스를 달라고 요청하기 위해 쓰임
- HEAD : GET처럼 행동하지만, 서버는 헤더만을 돌려줌, 엔터티 본문은 반환되지 않음.
- PUT : 서버의 요청 메시지의 본문을 저장
- POST : 서버에 입력 데이터를 전송, 서버가 처리해야 할 데이터를 보냄
- TRACE : 메시지가 프락시를 거쳐 서버에 도달하는 과정을 추적, 주로 진단을 위해 사용
- OPTIONS : 서버에게 특정 리소스에 대해 어떤 메서드가 지원 되는지 물어봄
- DELETE : 서버에게 요청 URL로 지정한 리소스를 삭제할 것을 요청
상태코드 : https://developer.mozilla.org/ko/docs/Web/HTTP/Status/404
- 100, 101 : 정보
- 200~206 : 성공 200 : OK 성공! 요청한 모든 데이터는 응답 본문에 들어있다.
- 300~305 : 리다이렉션
- 400~415 : 클라이언트 에러 404 : Not Found 서버는 요청한 URL에 해당하는 리소스를 찾지 못했다.
- 500~505 : 서버 에러
HTTP 헤더: https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/Accept
참고 자료
- HTTP완벽 가이드, 인사이트
'HTTP' 카테고리의 다른 글
[HTTP] 캐시(Cache) (0) | 2020.05.03 |
---|---|
[HTTP] 프락시(Proxy) (0) | 2020.05.02 |
[HTTP] 웹 서버 (0) | 2020.05.02 |
[HTTP] 커넥션 관리 (0) | 2020.05.01 |
[HTTP] URL과 리소스 (0) | 2020.04.30 |