Http 전송에 필요한 모든 부가정보 엄청많음
필요시 임의의 헤더 추가 가능
Message body
로 데이터를 전달 (payload)header
는 데이터를 해석할 수 있는 정보 제공 (유형, 길이 ....)표현 = 표현 메타데이터 + 표현 데이터
표현 헤더는 전송, 응답 둘다 사용함
REST API의 RE가 바로 표현
Content-Type
: 표현 데이터의 형식
Content-Encoding
: 표현 데이터의 압축 방식
Content-Language
: 표현 데이터의 자연 언어
Content-Length
: 표현 데이터의 길이
클라이언트가 선호하는 표현으로 달라고 요청 => 우선순위에 맞춰서 서버가 표현 (못줄수도)
요쳥시에만 사용
Accept
: 미디어 타입Accept-Charset
: 문자 인코딩Accept-Encoding
: 압축 인코딩Accept-Language
: 자연 언어ex)
accept-language: ko,en-US;q=0.9,en;q=0.8,ko-KR;q=0.7
없으면 1, 높을수록 좋은거
구체적일수록 좋은거
Content-Length
를 줌Content-Encoding
으로 압축 정보 추가Transfer-Encoding : chunked
덩어리로 쪼개서 보냄 (Content-length
❌) 각 덩어리마다 있음Content-Range
로 범위 지정해줌From
Referer
❗️ 진짜많이씀 User-Agent
Server
Date
HOST
❗️Location
3xx
응답의 결과에 Location
이 있으면, 자동 이동201
도 쓸 수있는데, 요청에 의해 생성된 리소스 URIAllow
405
(Method not allow) 에서 응답에 포함Retry-After
503
(Service Unvaliable) 에서 응답에 포함Authorization
WWW-Authenticate
401
(UnAuthorized) 응답과 함께 사용Http는 Stateless 한 프로토콜이므로, 요청과 응답을 주고받고 끝임
한계를 해결하기 위해, 모든 요청에 쿠키를 보냄
Set-Cookie
Cookie
expires
: 만료일 지정max-age
: 초단위 지정 (음수면 삭제)세션 쿠키
: 만료 날짜를 생략하면, 종료시까지 유지일반적으로 path=/ 루트로 지정
ex)
path = /home으로 지정했다면
/home 밑의 경로만 가능
Secure
: Https에서만 전송HttpOnly
: 자바스크립트에서 document.cookie
로 접근 불가SameSite
: 요청 도메인과 쿠키에 설종된 도메인이 같은 경우만 쿠키 전송 (XSRF == CSRF 공격 방지)HTTP2 <- 다음글