HTTP 완벽가이드 읽은 후 정리
- 메시지 흐름
- HTTP 메시지 구성
- 요청, 응답 메시지 차이
- 요청 메시지가 지원하는 메소드
- 응답 메시지가 반환하는 상태 코드
- HTTP 헤더들이 하는 일
메시지의 흐름
- HTTP 메시지는 HTTP 애플리케이션 간에 주고 받은 데이터의 블록들
- 클라이언트, 서버, 프록시 사이에서 흐름
메시지는 원 서버 방향을 인바운드로 하여 송신
- 메시지가 원 서버로 향하는 것은 인바운드로 이동
- 모든 처리가 끝난 후 메시지가 사용자 에이전트로 돌아오는 것은 아웃바운드
- 다운스트림으로 흐르는 메시지
- 모든 메시지는 다운스트림으로 흐른다
- 발송자는 수신자의 업스트림
메시지의 각 부분
- 메시지는 시작줄, 헤더 블록, 본문 세 부분으로 이루어짐
- 시작줄은 어떤 메시지인지 서술
- 헤더 블록은 속성
- 본문은 데이터를 담고 있음(없을 수도 있다.)
메시지 문법
- 요청 메시지 형식
<메소드><요청URL><버전>
<헤더>
<엔티티 본문>
- 응답 메시지 형식
<버전><상태 코드><사유 구절>
<헤더>
<엔티티 본문>
- 메소드는 클라이언트 측에서 서버가 리소스에 대해 수행해주길 바라는 동작.(GET, HEAD, POST 등)
- 요청URL은 요청 대상이 되는 리소스를 지칭하는 완전한 URL 호은 URL의 경로 구성요소
- 버전은 메시지에서 사용 중인 HTTP의 버전
- HTTP/<메이저>.<마이너>
- 상태 코드는 요청 중에 무엇이 일어났는지 설명하는 세 자리 숫자
- 사유 구절은 숫자로 된 상태 코드의 의미를 사람이 이해할 수 있게 설명해주는 짧은 문구
시작줄
- 요청줄은 서버에서 어떤 동작이 일어나야 하는지 설명해주는 메소드와 그 동작에 대한 대상을 지칭하는 요청 URL이 들어있다.
- 응답줄은 수행 결과에 대한 상태 정보와 결과 데이터를 클라이언트에게 돌려 준다.
- 메소드는 서버에게 무엇을 해야 하는지 말해준다.(GET, POST 등)
- 상태코드는 요청 중에 무엇이 일어났는지 설명하는 세 자리 숫자다. 각 코드의 첫 번째 자릿수는 상태의 일반적인 분류(성공, 에러 등)를 나타낸다.
- 사유 구절은 숫자로 된 상태 코드의 의미를 사람이 이해할 수 있게 설명해주는 짧은 문구
헤더
- HTTP 헤더 명세는 여러 헤더 필드를 정의함
- 일반 헤더: 요청과 응답 양쪽에 모두 나타날 수 있음
- 요청 헤더: 요청에 대한 부가 정보를 제공
- 응답 헤더: 응답에 대한 부가 정보를 제공
- Entity 헤더: 본문 크기와 컨텐츠, 혹은 리소스 그 자체를 서술
- 확장 헤더: 명세에 정의되지 않은 새로운 헤더
엔티티 본문
- 이미지, 비디오, HTML문서 등 여러 디지털 데이터가 들어갈 수 있음
메소드
안전한 메소드
- GET, HEAD 메소드
- 요청의 결과로 서버에서 어떤 작용도 하지 않음을 의미
GET
- 가장 흔히 사용됨
- 주로 서버에게 리소스를 달라고 요청하기 위해 사용됨
HEAD
- GET과 같지만 응답으로 헤더만 받음
- 응답 상태코드를 통해, 개체가 존재하는지 확인 가능
- 헤더를 확인하여 리소스가 변경되었는지 확인 가능
PUT
- 서버에 문서를 쓴다.
- 새 문서를 만들거나 이미 URL이 존재한다면 본문을 사용해서 교체함
- 서버에 입력 데이터를 전송하기 위함
DELETE
- 서버에게 요청 URL로 지정한 리소스를 삭제할 것을 요청
상태 코드
- HTTP 상태 코드는 크게 다섯 가지로 나뉨.
1. 100-199: 정보성 상태 코드
2. 200-299: 성공 상태 코드
3. 300-399: 리다이렉션 상태 코드
4. 400-499: 클라이언트 에러 상태 코드
5. 500-599: 서버 에러 상태 코드
'개발 > HTTP' 카테고리의 다른 글
[HTTP] 커넥션 관리 (2) | 2022.08.08 |
---|---|
[HTTP] URL과 리소스 (0) | 2022.07.05 |
[HTTP] HTTP 개관 (0) | 2022.07.01 |