Spring boot

[HTTP] HTTP 일반 헤더

HTTP 헤더 개요

• General 헤더: 메시지 전체에 적용되는 정보, 예) Connection: close

• Request 헤더: 요청 정보, 예) User-Agent: Mozilla/5.0 (Macintosh; ..)

• Response 헤더: 응답 정보, 예) Server: Apache

• Entity 헤더: 엔티티 바디 정보, 예) Content-Type: text/html, Content-Length: 3423

 

현재는 RFC2616 -> RFC7230-7235로 개정되며 Entity 대신 Representation (표현)이라는 용어로 바뀜

표현 = 표현 메타데이터 + 표현 데이터

 

rest API 의 rest가 Representation에서 온 것 !

 


표현

• Content-Type: 표현 데이터의 형식 ex) applicaion/json; charaset=utf-8

• Content-Encoding: 표현 데이터의 압축 방식 ex) gzip

• Content-Language: 표현 데이터의 자연 언어 ex) ko-KR

• Content-Length: 표현 데이터의 길이

 


콘텐츠 협상

클라이언트가 선호하는 표현 요청을 뜻한다.

 

• Accept: 클라이언트가 선호하는 미디어 타입 전달

• Accept-Charset: 클라이언트가 선호하는 문자 인코딩

• Accept-Encoding: 클라이언트가 선호하는 압축 인코딩

• Accept-Language: 클라이언트가 선호하는 자연 언어

 

ko-KR,ko;q=0.9, ....

q는 Quality Values로 0-1의 값 중 큰 값일수록 높은 우선순위를 갖는다.

 

 


전송 방식

• 단순 전송

• 압축 전송

• 분할 전송: 청크 단위로 바이트/데이터를 쪼개서 전송함

• 범위 전송

 


일반 정보

• From: 유저 에이전트의 이메일 정보, 잘 사용되지 않음

• Referer: 이전 웹 페이지 주소

• User-Agent: 유저 에이전트 애플리케이션 정보

• Server: 요청을 처리하는 오리진 서버의 소프트웨어 정보

• Date: 메시지가 생성된 날짜

 

 


특별한 정보

• Host: 요청한 호스트 정보(도메인), 한 ip에 여러 도메인 적용되어있을 때 필요

• Location: 페이지 리다이렉션, 3xx 리다이렉션 혹은 201 Creatd에서 사용

• Allow: 허용 가능한 HTTP 메서드, 405(Method Not Allowed)에서 올바른 메서드를 알려주기 위함

• Retry-After: 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간

 

 


인증

• Authorization: 클라이언트 인증 정보를 서버에 전달

• WWW-Authenticate: 리소스 접근시 필요한 인증 방법 정의

 


쿠키

로그인 세션 유지, 광고 트랙킹 등에 사용

브라우저 내의 쿠키 저장소에서 요청에 자동으로 사용자 정보를 포함시켜줌

 

• Set-Cookie: expires=Sat, 26-Dec-...

expires 혹은 max-age 에 적용된 시간까지만 유지됨

 

• domain=example.org

로 명시한 경우 서브 도메인까지 쿠키 정보를 전달

명시하지 않으면 기준 도메인에만 적용

 

• path=/home

경로를 포함한 하위 경로 페이지에만 쿠키 접근

일반적으로 path=/ (루트)로 지정

 

• Secure

• HttpOnly

• SameSite

보안 관련 헤더

'Spring boot' 카테고리의 다른 글

[MVC1] 웹 애플리케이션의 이해  (0) 2021.11.23
[HTTP] HTTP 헤더 - 캐시와 조건부 요청  (2) 2021.11.16
[HTTP] HTTP 상태코드  (0) 2021.11.03
[HTTP] HTTP 메서드 활용  (0) 2021.10.27
[HTTP] HTTP 메서드  (0) 2021.10.13