HTTP 헤더

HUSII·2023년 1월 19일
0

header-field =
field-name ":" OWS field-value OWS
(OWS: 띄어쓰기 허용)
field-name은 대소문자 구별 없음

HTTP 헤더의 용도
HTTP 전송에 필요한 모든 부가정보
ex) 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 캐시 등등
엄청 많다
필요시 임의의 헤더 추가 가능


표현
Content-Type: 표현 데이터의 형식 설명
(text/html; charset=utf-8, application/json, image/png)

Content-Encoding: 표현 데이터의 인코딩
표현 데이터를 압축하기 위해 사용
(gzip, deflate, identity)

Content-Language: 표현 데이터의 자연 언어
(ko, en, en-US)

Content-Length: 표현 데이터의 길이
바이트 단위

협상
클라이언트가 선호하는 표현 요청
Accept: (클라가 선호하는)미디어 타입
Accept-Charset: 문자 인코딩
Accept-Encoding: 압축 인코딩
Accept-Language: 자연 언어
협상 헤더는 요청시에만 사용

협상과 우선 순위1
Quality Values(q) 값 사용 (0 ~ 1)
클수록 우선 순위, 1은 생략
ex)
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7

협상과 우선 순위2
구체적인것이 우선순위

전송 방식
단순 전송은 Content-Length 그대로 사용
압축 전송은 Content-Encoding
Transfer-Encoding: 분할 전송
Range, Content-Range: 범위 전송

일반 정보
From: 유저 에이전트의 이메일 정보(요청)
Referer: 이전 웹 페이지 주소(요청)
User-Agent: 유저 에이전트 애플리케이션 정보(요청)
Server: 요청을 처리하는 오리진 서버의 소프트웨어 정보(응답)
Date: 메시지가 생성된 날짜(응답)

특별한 정보
Host: 요청한 호스트 정보(도메인)
Location: 페이지 리다이렉션
Allow: 허용 가능한 HTTP 메서드
Retry-After: 유저 에이전트가 기다려야 하는 시간

인증
Authorization: 클라 인증 정보를 서버에 전달
WWW-Authenticate: 리소스 접근시 필요한 인증 방법 정의

쿠키
Set-Cookie: 서버에서 클라로 쿠키 전달
Cookie: 서버로부터 받은 쿠키 HTTP 요청시 전달
HTTP는 무상태 프로토콜이기 때문제 클라 정보를 쿠키를 이용해서 직접 전달한다.
쿠키는 모든 요청에 정보가 자동으로 포함된다.

쿠키 - 생명주기
Set-Cookie: expires(만료일) max-age(0이하 값이면 삭제됨)

쿠키 - 도메인
domain으로 지정 가능 - 서브 도메인도 포함된다.
생략하면 현재 문서 기준 도메인만 적용 - 서브 도메인 포함x

쿠키 - 경로
path - 쿠키 접근 가능 경로 명시 - 하위 경로 페이지 접근 가능

쿠키 - 보안
Secure(https만), HttpOnly(HTTP 전송만), SameSite(도메인이 같은 경우만)

profile
공부하다가 생긴 궁금한 것들을 정리하는 공간

0개의 댓글