HTTP 상태코드 / 헤더

김현송·2023년 3월 1일
0

네트워크

목록 보기
5/10

상태코드

클라이언트가 보낸 요청의 처리 상태를 서버에서 결과로 알려주는 기능입니다.

  • 100번대 : 요청이 수신되어 처리중임을 알려줍니다.

    거의 사용하지 않는다고 합니다. MDN 문서 상으로는 정보 응답으로 정의되어 있습니다

  • 200번대 : 요청이 정상 처리되었음을 알려줍니다

    • 200 : OK
    • 201 : Created > 리소스 식별자는 헤더로 들어갑니다.
    • 202 : Accepted : 주로 배치 처리에서 사용합니다. 요청이 접수는 되었으나 처리가 완료되지 않은 것을 의미합니다.
    • 204 : No Content : 성공적으로 수행했으나 보낼 데이터가 없는 경우 입니다.
      • 대표적으로 문서 작성 중 임시저장이 있습니다.(velog 임시저장)
  • 300번대 : 요청을 완료하려면 추가 행동이 필요하다는 것을 알려줍니다 (Redirection)

    • 웹브라우저는 헤더에 Location 이 있으면 해당 위치로 자동으로 이동합니다.

    • 만일 특정 리소스의 주소값이 변경되어 사용하지 않는 URI로 요청을 보낸다면 어떻게 될까요? 서버는 이에대한 처리를 할때 301 또는 308 번을 이용해 Header에 해당 리소스 Location을 담아 보냅니다.

      • 301의 경우 Redirect 시 요청 메서드가 GET으로 변합니다.

      • 308의 경우 Redirect 시 요청 메서드가 원본 요청을 유지합니다.

      • 일시적인 Redirection

        302 Found : Redirect 시 요청 메서드가 GET을 변하고 본문이 제거될 수 있습니다

        307 Temporary Redirect : 302와 기능은 같으나 메서드 변경이 안됩니다

        303 See Other

        처음 302 스펙의 의도는 HTTP 메서드를 유지하는것이었으나, 대부분의 웹 브라우저들이 GET으로 바꾸어 버려 현재는 303과 307 / 301과 308 (tempo/perma) 이 나오게 되었습니다.

        그러나 이미 많은 애플리케이션들이 모호한 302를 기본값으로 사용합니다.

    • 304 Not Modified : 캐시를 목적으로 사용합니다.

      클라이언트에게 리소스가 수정되지 않았음을 알려줍니다. 서버는 클라이언트가 어떻게 수정되지 않은 리소스를 클라이언트가 들고있는지 알 수 있을까요?

  • 400번대 : 클라이언트 오류를 의미합니다.

  • 500번대 : 서버 오류를 의미합니다.

헤더

표현

RFC723X 으로 변화하면서 엔티티라는 표현대신 "표현" 으로 표현이 바뀌었다(?)

Content-Type : 표현 데이터 형식 / text.html; charset=utf-8 application/json...

Content-Encoding : 표현 데이터의 압축 방식 gzip, deflate, identity(압축된게 없다)

단순 전송 Content-Length : 표현 데이터의 길이 ( 바이트 단위 입니다. )

분할 전송 : Transfer-Encoding : chuncked

범위 전송 : Content-Range : 1001~ 2300

Content-Language : 표현 데이터의 자연 언어

Accept ( 요청시에만 사용합니다 )

  • Accept : 클라이언트가 선호하는 미디어 타입을 전달합니다.
  • Accept-Charset : 클라이언트가 선호하는 문자를 의미합니다.
  • Accept-Encoding: 클라이언트가 선호하는 압축을 의미합니다.
  • Accept-Language : 클라이언트가 선호하는 언어를 의미합니다.

language의 점수는 1점부터 우선순위가 주어집니다.

Accept는 구체적인 데이터 포맷일수록 우선순위가 주어집니다.

일반 정보

  • From : 클라이언트 이메일 정보
  • Referer: 이전 웹페이지 주소
  • User-Agent: 클라이언트 어플리케이션 정보
  • Server : 요청을 처리하는 서버의 소프트웨어 저옵
  • Date : 메시지 생성 날짜

특별한 정보

  • Host: 요청한 호스트 정보( 도메인 , 필수값입니다. )
  • Location : 페이지 Redirection (웹 브라우저에서 헤더에 있는 경우 자동으로 진행 )
  • Allow : 허용 가능한 HTTP 메서드
  • Retry-After : 클라이언트가 다음 요청을 하기까지 기다려야 하는 시간

인증

  • Authorization : 클라이언트 인증 정보를 서버에 전달합니다.
  • WWW-Authenticate: 리소스 접근시 필요한 인증 방법 정의합니다.
profile
안녕하세요

0개의 댓글