본문 바로가기
CS 개념정리/네트워크

[네트워크 CS 준비] 7. HTTP header 1

by 반오십 코린이 2023. 1. 13.
728x90

HTTP 헤더의 특징에 대해 설명해보세요

 

field-name은 대소문자 구분이 없습니다.

HTTP 전송에 필요한 모든 부가 정보를 포함합니다.(메시지 바디의 내용, 크기, 압축 여부, 인증, 요청 클라이언트..)

필요시 임의의 헤더 추가가 가능합니다.

 

Content-Type

 

미디어 타입, 문자 인코딩

  • text/html; charset=utf-8
  • application/json
  • image/png

Content-Encoding

 

표현 데이터 인코딩 - 표현 데이터를 압축하기 이해 사용, 데이터를 읽는 쪽에서 인코딩 헤더의 정보로 압축 해제

  • gzip
  • deflate
  • identity

Content-Language

 

표현 데이터의 자연 언어를 표현

  • ko
  • en
  • en-US

Content-Length

 

표현 데이터의 길이

  • 바이트 단위
  • Transfer-Encoding 사용하면 Content-Length 사용 불가

협상 - 콘텐츠 협상(클라이언트가 선호하는 표현 요청)

  • Accept: 클라이언트가 선호하는 미디어 타입 전달
  • Accept-Charser: 클라이언트가 선호하는 문자 인코딩
  • Accept-Encoding: 클라이언트가 선호하는 압축 인코딩
  • Accept-Language: 클라이언트가 선호하는 자연 언어

 

선호하는 언어가 있으면 서버에서 그에 맞게 언어 설정하여 보내준다.

 

ko를 선호 하지만 서버에서 ko가 없어서 독일어로 보내준 모습. q 값을 사용하여 우선순위를 골라줄 수 있다.
Accept를 통해 미디어 타입을 맞춰줄 수 있다.

전송 방식 설명

  • 단순 전송

  • 압축 전송

  • 분할 전송

나눠서 데이터를 보내주는 형태

  • 범위 전송

~1000까지는 정보가 있고 1001~2000까지만 주라! 라는 의미이다.

 

 


쿠키

  • Set-Cookie: 서버에서 클라이언트로 쿠키 전달(응답)
  • Cookie: 클라이언트가 서버에서 받은 쿠키 저장 - HTTP 요청시 서버로 전달
  • Stateless한 특성 때문에 아래와 같은 case가 등장한다. - 서버가 클라이언트의 상태를 유지하지 않기 때문!

 

 

쿠키가 없기에 로그인 했더라도 유저 관련 정보를 넘기지 않으면 이 사람이 어떤 사람인지에 대한 정보를 모름.
그렇다고 이렇게 url에 정보 넣어 보내는 것은 비효율적


로그인시 다음과 같이 서버로 부터 쿠키를 넘겨받아 local 저장소에 쿠키를 저장하고 해당 사이트에서 다음 동작을 수행할 때 쿠키와 함께 보냄

 

  • 사용자 로그인 세션 관리
  • 광고 정보 트래킹
  • 쿠키 정보는 항상 서버에 전송 -> 네트워크 트래픽 추가 유발
  • 최소한의 정보만 사용
  • 보안에 민감한 데이터는 저장하면 안됨(주민번호, 신용카드 번호)

쿠키의 헤더 옵션

 

김영한 강사님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의에서 참고했습니다
728x90