[http] Network 기본 지식3
HTTP 헤더
1. 용도
- 헤더에는 전송에 필요한 모든 부가 정보가 있다.
- 메시지 바디의 내용, 메시지 바디의 크기, 인증, 요청 클라이언트, 서버 정보 등등…
2. 분류(RFC)
- 헤더 분류
- General header > Connection: close
- Request header > User-Agent: Mozilla/5.0
- Response header > Server: Apache
- Entity header > Content-Type: text/html, ContentLength
- HTTP BODY
- 메시지 본문(=페이로드) : 표현 데이터 전달
- 표현은 요청이나 응답에서 전달할 실제 데이터
- 표현 헤더 : 표현 데이터를 해석할 수 있는 정보 제공 (html, json, 데이터 길이 등등)
- 메시지 본문(=페이로드) : 표현 데이터 전달
- 표현
- Content-Type : 표현 데이터의 형식 (text/html;charset-uft-8, application/json, image/png)
- Content-Encoding : 압축방식 (gzip)
- Content-Language : 언어 (ko, en, en-US)
- Content-Length : 데이터 길이 (byte) »> Transfer-Encoding은 Content-Length 사용 불가
- 협상(콘텐츠 네고시에이션) : 클라이언트가 원하는 표현 요청
- Accept-Encoding
- Accept-Language
- Accept-Charset
3. 전송 방식
- 단순 전송 : 한 번에 그대로 보냄
- 압축 전송 : (Content-Encoding: gzip)
- 분할 전송 : 청크로 쪼개서 보냄(Transfer-Encoding: chunked) - Content-Length를 보내면 안된다.
-
범위 전송 : 어디까지 보냈는지 범위를 알려줌
- 일반 정보
- From : 유저의 이메일 정보
- Referer : 이전 웹 페이지 주소
- User-Agent : 유저의 애플리케이션 정보
- Server : 서버의 소프트웨어 정보
- Date : 메시지의 생성 날짜
- Host : 도메인 주소 (필수)
- 인증
- Authorization : 클라이언트 인증 정보를 서버에 전달
- 쿠키
- Set-Cookie : 서버 > 클라이언트로 쿠키 전달(응답)
- Cookie : 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달
- 캐시
- 같은 데이터를 계속 다운로드 받지 않도록 한다.
- 브라우저 로딩 속도가 빨라진다.
Comments