[HTTP 완벽가이드] 3장

jhstudio·2023년 8월 7일
0

HTTP 완벽가이드

목록 보기
2/2
post-thumbnail

HTTP 버전

HTTP/<메이저버전>.<마이너버전> 형식

엔터티 본문

헤더 뒤는 항상 CRLF(빈줄)로 끝나야한다.
하지만 잘지켜지지않아서 CRLF가 없어도 메세지를 받아들여야한다.

흔히 쓰는 상태코드

200 : OK
401 : Unauthorized

  • 사용자 이름, 비번 입력해야함

404 : Not Found

확장헤더

명세에 정의 되지않은 새로운헤더

흔히쓰는 헤더 (서버에서 사용)

Date : 서버가 응답한시간
Content-length:15040

  • 15,040 바이트의 데이터를 포함한 엔터티 본문

Content-type: image/gif

  • 엔터티본문은 gif 이미지

Accept : image/gif, image/jpeg

  • 클라이언트는 GIF, JEPG를 받을 수 있음

HEAD 메서드

GET과 똑같지만 서버응답은 헤더만 돌려준다.

TRACE 메서드

  • 클라이언트 요청으로 방화벽, 프록시, 게이트웨이등등 통과
  • HTTP 디버그
  • 서버에 도달했을때 어떻게 되는지 보여줌
  • 서버에서 루프백을 진단한다
  • 보안이슈로 쓰지않는걸 권장하는듯하다.

OPTIONS 메서드

어떤 메서드가 지원되는지 요청

LOCK, MKCOL

  • LOCK : 사용자가 리소스를 잠글 수 있다. 예를들어 문서를 편집할때 다른사람은 동시에 편집못한다.
  • MKCOL : 사용자가 문서생성

등등 문서화만 한다면 여러가지 메서드를 직접정의해도 된다.

상태코드

상태코드 100

클라이언트가 서버에게 계속 요청을 해도 되는지 확인할때 사용
1. 클라이언트가 서버에게 Expect헤더를 보내면 서버는 100코드를 리턴해서 응답을 받는다.

  • 서버에서 status code를 100으로하면 서버가 멈춘다...
  1. 클라이언트가 100코드에 대한 응답을 받으면 실제 요청을 처리한다.

상태코드 201

  • PUT을 위한 코드
  • Location 헤더를 사용

상태코드 204

  • 엔터티 본문을 포하하지 않는다.

상태코드 300~399

리다이렉션 상태코드
헤더에 있는 Location url로 이동한다.

  • 이동한곳도 Location url이 있으면 또 이동해서 무한루프에 주의해야함

상태코드 304

해당 리소스코드가 수정이 안돼있다면(수정시간이 이전과같다) 로컬에있는 캐시를 리로드

상태코드 400~499

클라이언트 에러코드

상태코드 401

인증 에러

상태코드 403

서버가 숨기고싶은 에러

상태코드 500~599

서버에러

상태코드 503

현재는 서버가 처리못하고 나중에 처리가능할때

요청헤더

Host, Referer, UA~ 등 어떤요청을 줬는지 서버에게 보내준다.

Accept : 서버가 보내도되는 미디어 종류를 요청
Accept-CharSet: 문자집합 요청
Accept-Encoding: 인코딩 요청
Accept-Language: 언어요청

등등 커스텀요청을 보내도되고 서버에서는 이를 무시해도된다.

응답헤더

응답서버의 상태 및 설명을 제공한다.

Age : 응답이 얼마나 오래되었는지
Retry-After : 현재리소스가 사용불가일때 언제 가능해지는지

협상 헤더

여러 헤더중 어떤걸 사용할지 지원한다.

profile
잡부

1개의 댓글

comment-user-thumbnail
2023년 8월 7일

유익한 글이었습니다.

답글 달기