전자메일의 메시지 스펙 RFC822의 헤더형식을 빌려오는 식으로 추가, 메일 프로토콜이 한 방향으로 주고 받지만 One-Way, HTTP는 한 번의 통신으로 요청/응답의 두 가지 메시지를 주고 받음
날짜와 시간
날짜 시간을 가지는 헤더
이용하는 메시지
헤더
의미
요청과 응답
Date
메시지를 생성한 일시
요청
If-Modified-Since
조건부 GET으로 리소스의 갱신일시를 지정할 때 이용한다
If-Unmodified-Since
조건부 PUT, 조건부 DELETE로 리소스의 갱신일시를 지정할 때 이용한다
응답
Expires
응답을 캐시할 수 있는 기한
Last-Modified
리소스를 마지막으로 생신한 일시
Retry-After
다시 요청을 전송할 수 있는 일시의 기준
MIME 미디어 타입
Content-Type - 미디어 타입 지정
타입
타입
의미
예
text
사람이 읽고 직접 이해할 수 있는 텍스트
text/plain
image
그림 데이터
image/jpeg
audio
음성 데이터
audio/mpeg
video
동영상 데이터
video/mp4
application
그 밖의 데이터
application/pdf
multipart
복수의 데이터로 이루어진 복합 데이터
multipart/related
message
전자메일 메시지
message/rfc822
model
복수 차원으로 구성하는 모델 데이터
model/vrml
example
예시용
example/foo-bar
charset 파라미터 - 문자 인코딩을 지정
주요 서브타입
타입 / 서브타입
의미
text/plain
플레인 텍스트
text/csv
CSV형식 텍스트
text/css
CSS형식의 스타일 시트
text/html
HTML 문서
text/xml
XML 문서(비추천)
image/jpeg
JPEG 이미지
image/gif
GIF 이미지
image/png
PNG 이미지
application/xml
XML 문서
application/xhtml+xml
XHTML 문서
application/atom+xml
Atom 문서
application/atomsvc+xml
Atom의 서비스 문서
application/atomcat+xml
Atom의 카테고리 문서
application/javascript
JavaScript
application/json
JSON 문서
application/msword
Word 문서
application/vnd.ms-excel
Excel 문서
application/vns.ms-powerpoint
PowerPoint 문서
application/pdf
PDF 문서
application/zip
ZIP 파일
application/x-shockware-flash
Flash 오브젝트
application/x-www-form-urlencoded
HTML 폼 형식
언어 태그Language Tag; Content-Language 헤더, RFC 4646 언어 태그 RFC 4647 태그의 비교방법이 정의
콘텐트 네고시에이션
Accept - 처리할 수 있는 미디어 타입을 전달
Accept-Charset - 처리할 수 있는 문자 인코딩 전달
Accept-Language - 처리할 수 있는 언어를 전달
Content-Length와 청크(chunk) 전송
Content-Length - 바디의 길이를 지정
청크 전송 - 바디를 분할하여 전송
인증; Basic 인증, Digest 인증, 웹 API에서 WSSE WS-Security Extension 확장 스펙
Basic 인증; 유저 이름과 패스워드를 Authorization 헤더에 넣어 요청마다 전송. 유저이름:패스워드를 Base64 인코딩, 보안 강도 확인 필요(SSL Secure Socket Layer, TLS Transport Layer Security, HTTPS HTTP over Secure Socket Layer 등)
Digest 인증;
첼린지; nonce(number used once), qop(quality of protection) → 'auth'나 'auth-init' 지정, opaque
다이제스트 생성과 송신
WSSE 인증;
OpenID와 OAuth, SSO Single Sign-on
OpenID - 심플한 싱글 사인온; IdP(Identity Provider), SP(Service Provide)
OAuth - 웹서비스 사이의 권한의 위임; 인가정보를 넘기는 기능
캐시
캐시용 헤더
Pragma - 캐시를 억제
Expires - 캐시의 유효기한
Cache-Control - 상세한 캐시 방법을 지정
캐시용 헤더의 사용 구분
캐시를 시키지 않을 경우는 Pragma와 Cache-Control의 no-cache를 동시에 지정
캐시의 유효기간이 명확하게 정해저 있는 경우는 Expires를 지정
캐시의 유효기간을 상대적으로 지정하고자 하는 경우는 Cache-Control의 max-age로 상대시간을 지겅