HTTP 헤더
- HTTP 전송에 필요한 모든 부가정보를 포함하며, 필요시 임의의 헤더를 추가할 수 있다.
- 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등을 포함한다.
표현 (요청, 응답)
- 표현은 요청이나 응답에서 전달할 실제 데이터를 말하며, HTTP 헤더를 통해 표현 메타데이터를 전달한다.
- 표현 헤더는 데이터 유형, 길이, 압출 정보 등 표현 데이터를 해석할 수 있는 정보를 제공한다.
Content-Type | 표현 데이터의 형식 (미디어 타입, 문자 인코딩) |
Content-Encoding | 표현 데이터의 압축 방식 |
Content-Language | 표현 데이터의 자연 언어 (ko, en, en-US 등) |
Content-Length | 표현 데이터의 길이 (바이트 단위) |
협상 (요청)
- 클라이언트가 선호하는 표현 요청 정보
Accept | 클라이언트가 선호하는 미디어 타입 |
Accept-Charset | 클라이언트가 선호하는 문자 인코딩 |
Accept-Encoding | 클라이언트가 선호하는 압축 인코딩 |
Accept-Language | 클라이언트가 선호하는 자연 언어 |
우선순위 - Quality Values(q)
- 0~1 사이의 값으로, 클수록 높은 우선순위를 갖는다. (생략시 우선순위는 1)
- 또한 표현 요청이 더 구체적인 것을 기준으로 미디어 타입을 맞춘다.
전송 방식
Content-Length | 단순 전송 |
Content-Encoding | 압축 전송 |
Transfer-Encoding | 분할 전송 |
Content-Range | 범위 전송 |
일반 정보
요청
From | - 유저 에이전트의 이메일 정보 - 검색 엔진에서 주로 사용 |
Referer | - 현재 요청된 페이지 이전 웹 페이지 주소 - 유입 경로 분석 가능 |
User-Agent | - 유저 에이전트 애플리케이션 정보 (웹 브라우저 정보) - 어떤 종류의 브라우저에서 장애가 발생하는지 등의 통계 정보로 활용 |
응답
Server | 요청을 처리하는 ORIGIN 서버의 소프트웨어 정보 |
Date | 메시지가 생성된 날짜와 시간 |
특별한 정보
Host (요청) | - 요청한 호스트 정보 - 하나의 서버가 여러 도메인을 처리해야 하거나, 하나의 IP 주소에 여러 도메인이 적용되어 있을 때 사용한다. |
Location | - 페이지 리다이렉션 - 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면 Location 위치로 리다이렉트 - 201 Created 응답에서는 Location 값은 요청에 의해 생성된 리소스 URI를 의미한다. |
Allow | - 허용 가능한 HTTP 메서드 - 405 Method Not Allowed 응답에서 응답에 포함해야 한다. |
Retry-After | - 유저 에이전트가 다음 요청을 위해서 기다려야 하는 시간 - 503 Service Unavailable 응답에서 서비스가 언제까지 이용 불가능한지 알려준다. |
인증
Authorization | 클라이언트의 인증 정보를 서버에 전달한다. |
WWW-Authenticate | - 리소스 접근 시 필요한 인증 방법을 정의한다. - 401 Unauthorized 응답과 함께 사용 |
쿠키
- 사용자 로그인 세션 관리, 광고 정보 트래킹 등에 사용된다.
- 쿠키 정보가 항상 서버에 전송되면 네트워크 트래픽이 추가 유발되므로, 세션, ID, 인증 토큰 등의 최소한의 정보만 저장한다.
- 또한 주민번호, 신용카드 번호 등과 같이 보안에 민감한 데이터는 쿠키에 저장하면 안 된다.
- 만약 서버에 전송하지 않고 웹 브라우저 내부에 데이터를 저장하고 싶으면 웹 스토리지를 사용한다.
Set-Cookie (응답) | 서버에서 클라이언트로 쿠키 전달 |
Cookie | 클라이언트가 서버에서 받은 쿠키를 쿠키 저장소에 저장하고, 모든 HTTP 요청에 쿠키 정보를 자동으로 포함해서 서버로 전달 |
생명주기 | - Expires=만료일이 되면 쿠키 삭제 - max-age=0이나 음수를 지정하면 쿠키 삭제 - 세션 쿠키: 만료 날짜를 생략하면 브라우저 종료 전까지만 유지 - 영속 쿠키: 만료 날짜를 입력하면 해당 날짜까지 유지 |
도메인 | - 명시: 명시한 문서 기준 도메인 + 서브 도메인 포함 - domain=example.org를 지정해서 쿠키 생성 - example.org를 포함, dev.example.org도 쿠키 접근 - 생략: 현재 문서 기준 도메인만 적용 - example.org에서 쿠키를 생성하고 domain 지정을 생략하면 example.org에서만 쿠키 접근 가능 |
경로 | - path=/home - 이 경로를 포함한 하위 경로 페이지만 쿠키 접근 - 일반적으로는 path=/루트로 지정 |
보안 | - secure: 쿠키는 http, https를 구분하지 않고 전송하지만 Secure을 적용하면 https인 경우에만 전송 - HttpOnly: XSS 공격 방지, 자바스크립트에서 접근 불가, http 전송에만 사용 - SameSite: XSRF 공격 방지, 요청 도메인과 쿠키에 설정된 도메인이 같은 경우에만 쿠키 전송 |
'Web' 카테고리의 다른 글
HTTP 기초 (0) | 2022.03.05 |
---|---|
동시 요청과 멀티 쓰레드 (0) | 2022.03.05 |
웹 서버와 WAS (0) | 2022.03.05 |
캐시와 조건부 요청 (0) | 2022.03.05 |
HTTP 상태 코드 (0) | 2022.03.05 |