http 헤더

JuhyeokLee·2022년 2월 10일
0
post-thumbnail

공통 헤더

요청과 응답에 모두 사용되는 헤더

  • Date
    http 메시지가 만들어진 시각

  • Connection
    기본적으로 keep-alive

  • Cache-Control

    • no-cache : 모든 캐시를 쓰기 전에 서버에 이 캐시 사용 해도 되는지 물어보라는 뜻
    • no-store : 아무것도 캐싱하지 않음
    • must-revalidate : 만료된 캐시만 서버에 확인 받도록 함
    • public 또는 private : public이면 공유 캐시(또는 중개 서버)에 저장도 가능, private이면 브라우저같은 특정 사용자 환경에만 저장
  • Content-Length
    요청과 응답 메시지의 본문 크기를 바이트 단위로 표시

  • Content-Type
    컨텐츠의 타입(MIME)과 문자열 인코딩(utf-8 ...)을 명시

  • Content-Language
    사용자의 언어

  • Content-Encoding
    컨텐츠 압축된 방식, 응답 컨텐츠를 br, gzip, deflate 등의 알고리즘으로 압축해서 보내면, 브라우저가 알아서 해제해서 사용

요청 헤더

  • Host
    서버의 도메인 네임이 나타나는 부분(포트 포함)

  • User-Agent
    현재 사용자가 어떤 클라이언트(운영체제와 브라우저 같은 것)를 이용해 요청을 보냈는지 확인

  • Accept
    요청을 보낼 때 서버에 이런 타입(MIME)의 데이터를 보내달라 명시

  • Authorization
    인증 토큰(JWT, Bearer 등)을 서버로 보낼 때 사용하는 헤더

  • Origin
    POST같은 요청을 보낼 때, 요청이 어느 주소에서 시작되었는지를 표현 여기서 요청을 보낸 주소와 받는 주소가 다르면 CORS 문제가 발생

  • Referer
    이 페이지 이전의 페이지 주소가 담겨 있음

응답 헤더

  • Access-Control-Allow-Origin
    요청을 보내는 프론트 주소와 받는 백엔드 주소가 다르면 CORS 에러가 발생.
    이 때 서버에서 응답 메시지 Access-Control-Allow-Origin 헤더에 프론트 주소를 적어주어야 에러가 나지 않음.
    CORS 요청 시에는 미리 OPTIONS 주소로 서버가 CORS를 허용하는지 물어봅니다.
    이 때 Access-Control-Request-Method로 실제로 보내고자 하는 메서드를 알리고,
    Access-Control-Request-Headers로 실제로 보내고자 하는 헤더들을 알립니다

  • Allow
    Access-Control-Allow-Methods랑 비슷하지만, CORS 요청 외에도 적용된다는 점이 차이점

  • Content-Disposition
    응답 본문을 브라우저가 어떻게 표시해야 할지 알려주는 헤더. inline인 경우 웹페이지 화면에 표시되고, attachment인 경우 다운로드

  • Location
    300번대 응답이나 201 Created 응답일 때 어느 페이지로 이동할지(리다이렉트)를 알려주는 헤더.

  • Content-Security-Policy
    다른 외부 파일들을 불러오는 경우, 차단할 소스와 불러올 소스를 여기에 명시

  • Age
    캐시 응답 시 max-age 시간 내에서 얼마나 흘렀는지 초 단위로 표현

쿠키

  • Set-Cookie
    서버에서 클라이언트(브라우저)한테 쿠키를 저장하라고 명령하는 응답 헤더

  • Cookie
    클라이언트가 서버한테 쿠키를 보내줄 때는 이 요청 헤더를 보냄

X-헤더

  • X-Forwarded-For, X-Forwarded-Host, X-Forwarded-Proto
    요청이 어디서부터 건너왔는지 알려주는 헤더.
    이 때 중개 서버를 거치면서 헤더들이 변조되고, 요청을 누가 보냈는지 애매하기 때문에 X-Forwarded 헤더 시리즈는 원래 요청이 누구인지 확인 가능

    • X-Forwarded-For : 현재까지 거쳐온 서버의 IP 대한 정보
      ex) X-Forwarded-For: 1.2.3.4, 5.6.7.8, 9.10.11.12

    • X-Frame-Options : frame, iframe, object 태그 안에서 페이지를 렌더링하는 것을 방지

    • X-Content-Type-Options : 브라우저가 서버가 보낸 컨텐츠 타입을 따르게 강제
      ex) X-Content-Type-Options: nosniff

출처 : https://www.zerocho.com/category/HTTP

profile
성장하는 개발자가 되겠습니다~

0개의 댓글