ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP 헤더(HTTP header)
    개발자로서 알아야 할 CS/HTTP 웹 기본 지식 2022. 2. 1. 16:39
    728x90
    반응형

     

     

     

    참고

     

     HTTP 표준이 2014년에 RFC2616d에서 RFC7230으로 변경되었다.

     

    • 메시지 본문은 페이로드(payload)라고도 하며 표현 데이터를 전달한다.
    • 표현은 요청이나 응답에서 전달할 실제 데이터
    • 표현 헤더는 표현 데이터를 해석할 수 있는 정보를 제공
      (데이터 유형(HTML, JSON), 데이터 길이, 압축 정보 등

     

    HTTP 헤더( HTTP header )

     HTTP Header에는 클라이언트와 서버가 요청 또는 응답을 할 때 헤더에 부가적인 정보를 포함하여 전송한다. 헤더는 크게 4가지로 분류할 수 있다.

     

    • General Header(공통 헤더)
    • Request Header(요청 헤더)
    • Response Header(응답 헤더)
    • Entity Header(엔티티 헤더) = Representation Header(표현 헤더)

     

    General Header(공통 헤더)

     

     요청과 응답 모두에 적용되지만 바디에서 최종적으로 전송되는 데이터와는 관련이 없는 헤더

     

    헤더 항목 설명
    Date 현재시간, ex) Sat, 23 Mat 2019 02:00:12 GMT
    Pragma 캐시 제어, HTTP/1.0에서 쓰던 것으로 HTTP/1.1에서는 Cache-Control이 쓰인다.
    Cache-Control 캐시 제어 (no-store, no-cache, must-revalidate 등)
    Upgrade 중계(프록시)서버의 이름, 버전, 호스트명
    Via 중계(프록시)서버의 이름, 버전, 호스트명
    Connection 네트워크 접속을 유지할지 말지 제어. HTTP/1.1은 kepp-alive 로 연결 유지하는게 default 값
    Transfer-Encoding 사용자에게 entity를 분할하여 전송

     

    Entity Header(엔티티 헤더) = Representation Header(표현 헤더)

     

     컨텐츠 길이나 MIME 타입과 같이 엔티티 바디에 대한 자세한 정보를 포함하는 헤더

     

    헤더 항목 설명
    content-type 리소스의 media type 명시 ex) application/json, text/html;charset=UTF-8
    content-length 바이트 단위를 가지는 개체 본문의 크기
    content-language 본문에 사용되는 자연 언어, ex) ko, en, en-US
    content-location 반환된 데이터 개체의 실제 위치 ex) /index.html
    content-disposition 응답 메세지를 브라우저가 어떻게 처리할지. 주로 다운로드에 사용
    content-security-policy 다른 외부 파일을 불러오는 경우 차단할 리소스와 불러올 리소스 명시
    • ex) default-src https -> https로만 파일을 가져옴
    • ex) default-src 'self' -> 자기 도메인에서만 가져옴
    • ex) default-src 'none' -> 외부파일은 가져올 수 없음
    content-encoding 본문의 리소스 압축 방식. 주로 Content-Type과 같이 사용되며 참조되는 미디어 타입을 얻도록 디코드하는 방법을 데이터를 읽는 쪽에서 알게 해준다 ex) gzip, deflate, identity
    location 301, 302 상태코드일 때만 볼 수 있는 헤더로 서버의 응답이 다른 곳에 있다고 알려주면서 해당 위치(URI)를 지정
    last-modified 리소스의 마지막 수정 날짜
    allow 지원되는 HTTP 요청 메소드 ex) GET, HEAD, POST
    expires 자원의 만료 일자
    ETag 리소스의 버전을 식별하는 고유한 문자열 검사기(주로 캐시 확인용으로 사용)

     

    Request Header(요청 헤더)

     

     HTTP 요청에서 사용되지만 메시지의 컨텐츠와 관련이 없는 패치될 리소스나 클라이언트 자체에 대한 자세한 정보를 포함하는 헤더

     

    헤더 항목 설명
    host 요청하려는 서버 호스트 이름과 포트번호, ex)host: www.google.com
    user-agent 클라이언트 프로그램 정보 ex) Mozilla/4.0, Windows NT5.1
    referer 현재 페이지로 연결되는 링크가 있던 이전 웹 페이지의 주소
    accept 클라이언트가 처리 가능한 MIME Type 종류 나열
    accept-charset 클라이언트가 지원가능한 문자열 인코딩 방식
    accept-language 클라이언트가 지원가능한 언어 나열
    accept-encoding 클라이언트가 해석가능한 압축 방식 지정
    if-modified-since 여기에 쓰여진 시간 이후로 변경된 리소스 취득. 캐시가 만료되었을 때에만 데이터를 전송하는데 사용
    authorization 인증 토큰을 서버로 보낼 때 쓰이는 헤더
    origin 서버로 Post 요청을 보낼 때 요청이 어느 주소에서 시작되었는지 나타내는 값. 경로 정보는 포함하지 않고 서버 이름만 포함
    • 이 값으로 요청을 보낸 주소와 받는 주소가 다르면 CORS 에러가 난다.
    cookie 쿠기 값 key-value로 표현된다. Set-Cookie 헤더와 함께 서버로부터 이전에 전송됐던 저장된 HTTP 쿠키를 포함

     

    accept-language의 우선순위

    • 클라이언트는 서버에 요청할 때 accept-language로 원하는 언어의 우선순위를 지정할 수 있다.
    • Quality Values(q) 값 사용 ( 0~1 사이의 값이며 클수록 우선순위를 갖는다, 생략하면 1 값이 들어간다)
    • ex) accept-language: : ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
      우선순위 1 = ko-KR (q=1 생략)
      우선순위 2 = ko;q=0.9
      우선순위 3 = en-US;q=0.8
      우선순위 4 = en;q=0.7

    우선 순위를 지정하지 않은 경우와 지정한 경우

     


     

    Response Header(응답 헤더)

     

    위치 또는 서버 자체에 대한 정보(이름, 버전)와 같이 응답에 대한 부가적인 정보를 갖는 헤더

     

    헤더 항목 설명
    server 웹서버의 종류
    age max-age 시간내에서 얼마나 흘렀는지 초 단위로 알려주는 값
    referrer-policy 서버 referrer 정책을 알려주는 값 ex) origin, no-referrer, unsafe-url
    WWW-authenticate 사용자 인증이 필요한 자원을 요구할 시, 서버가 제공하는 인증 방식
    proxy-authenticate 요청한 서버가 프록시 서버인 경우 유저 인증을 위한 값
    set-cookie 서버측에서 클라이언트에게 세션 쿠키 정보를 설정 (RFC 2965에서 규정)

     

     

     

    728x90
    반응형

    댓글

Designed by Tistory.