티스토리 뷰

https://developer.mozilla.org/ko/docs/Web/HTTP/Overview


HTTP 표현 헤더 (요청 응답 모두 사용)


HTTP 통신에서 

클라이언트가 서버에게 '오늘 만들어진 데이터를 줘' 요청시에

 

서버는 응답을 날린다.

1. 직렬화(0110 ..)바이너리 이진수로 바뀌어서 보내진다.

2. 클라이언트가 받았다.

3. 클라이언트 역직렬화 해야된다. 101010 => a.avi 파일로 바꿔야되니까.

 -> 역직렬화를 어떻게해야하나? 근거?  이때!! 헤더가 필요하다. 

물음표 안때리고

헤더를 보고 역직렬화 시킴.

헤더를 보고 바디를 분석할 수 있다.

 

헤더에 AVI파일이야~ 라고 적는게 MIME 타입 

근데 헤더에는 key :value 로 적어야함

 -> 할때마다 찾아서 하면된다. 

ex. content-type : video/x-msvideo

 -> 이걸보고 역직렬화 

 

헤더는 데이터의 형식, 압축 방식, 자연 언어, 길이 등을 설명한다.

  • 데이터의 형식 설명

  • 데이터 인코딩

  • 데이터에 자연언어

  • 데이터 길이

 

요청에 사용되는 헤더

더보기

From: 유저 에이전트의 이메일 정보

  • 일반적으로 잘 사용하지 않음
  • 검색 엔진에서 주로 사용
  • 요청에서 사용

Referer: 이전 웹 페이지 주소

  • 현재 요청된 페이지의 이전 웹 페이지 주소
  • A → B로 이동하는 경우 B를 요청할 때 Referer: A를 포함해서 요청
  • Referer를 사용하면 유입경로 수집 가능
  • 요청에서 사용
  • referer는 단어 referrer의 오탈자이지만 스펙으로 굳어짐

User-Agent: 유저 에이전트 애플리케이션 정보

  • 클라이언트의 애플리케이션 정보(웹 브라우저 정보, 등등)
  • 통계 정보
  • 어떤 종류의 브라우저에서 장애가 발생하는지 파악 가능
  • 요청에서 사용
  • e.g.
    • user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/ 537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36

Host: 요청한 호스트 정보(도메인)

  • 요청에서 사용
  • 필수 헤더
  • 하나의 서버가 여러 도메인을 처리해야 할 때 호스트 정보를 명시하기 위해 사용
  • 하나의 IP 주소에 여러 도메인이 적용되어 있을 때 호스트 정보를 명시하기 위해 사용[그림] HTTP HOST 헤더 비교

Origin: 서버로 POST 요청을 보낼 때, 요청을 시작한 주소를 나타냄

  • 여기서 요청을 보낸 주소와 받는 주소가 다르면 CORS 에러가 발생한다.
  • 응답 헤더의 Access-Control-Allow-Origin와 관련

Authorization: 인증 토큰(e.g. JWT)을 서버로 보낼 때 사용하는 헤더

  • “토큰의 종류(e.g. Basic) + 실제 토큰 문자”를 전송
  • e.g.
    • Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l

 

응답에 사용되는 헤더

더보기

Server: 요청을 처리하는 ORIGIN 서버의 소프트웨어 정보

  • 응답에서 사용
  • e.g.
    • Server: Apache/2.2.22 (Debian)
    • Server: nginx

Date: 메시지가 발생한 날짜와 시간

  • 응답에서 사용
  • e.g.
    • Date: Tue, 15 Nov 1994 08:12:31 GMT

Location: 페이지 리디렉션

  • 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Location 위치로 리다이렉트(자동 이동)
  • 201(Created): Location 값은 요청에 의해 생성된 리소스 URI
  • 3xx(Redirection): Location 값은 요청을 자동으로 리디렉션하기 위한 대상 리소스를 가리킴

Allow: 허용 가능한 HTTP 메서드

  • 405(Method Not Allowed)에서 응답에 포함
  • e.g.
    • Allow: GET, HEAD, PUT

Retry-After: 유저 에이전트가 다음 요청을 하기까지 기다려야 하는 시간

  • 503(Service Unavailable): 서비스가 언제까지 불능인지 알려줄 수 있음
  • e.g.
    • Retry-After: Fri, 31 Dec 2020 23:59:59 GMT(날짜 표기)
    • Retry-After: 120(초 단위 표기)

협상 헤더(요청시만)


 

예시로 알아보자. 클라이언트는 한국어를 선호하기에 Accept-Language에 한국어를 요청했지만 서버는 한국어를 지원하지 않으며 기본 언어는 독일어로 설정되어 있습니다. 클라이언트는 독일어는 너무 어렵기 때문에 한국어가 안되면 영어로라도 응답을 받기 원합니다.

우선순위 지정 가능하다!

'백엔드&컴퓨터사이언스' 카테고리의 다른 글

[배포] 도커  (0) 2022.01.07
[배포]AWS? 클라우드 컴퓨팅  (0) 2022.01.05
[네트워크] TCP UDP  (0) 2022.01.03
[컴퓨터 공학] 가비지컬렉터(메모리관련)  (1) 2021.12.31
[컴퓨터공학] 운영체제  (0) 2021.12.30
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함