Http

hoyong.eom·2023년 7월 5일
0

스프링

목록 보기
7/59
post-thumbnail

Spring


Http 상태 코드

Http 상태코드는 클라이언트가 보낸 요청의 처리 상태를 응답에서 알려주는 기능이라고 한다.
상태 코드에는 여러 종류가 존재하는데 간략히 정리하면 아래와 같다.

  • 1xx(Information) : 요청이 수신되어 처리중(거의 안씀)
  • 2xx(Successful) : 요청이 정상적으로 처리됨
  • 3xx(Redirection) : 요청을 완료하려면 추가 행동이 필요
  • 4xx(Client Error) : 클라이언트 오류, 잘못된 문법등으로 서버가 요청을 수행할 수 없음
  • 5xx(Server Error) : 서버 오류, 서버가 정상적으로 요청을 처리하지 못함

협상

협상은 클라이언트가 선호하는 표현을 요청하는것을 말한다.
여기서 말하는 표현(Representation)은 리소스를 어떻게 '표현' 할지의 의미를 갖는다.
이 협상 값은 Http 헤더에 포함되어 전달된다.

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

협상헤더는 요청시에만 사용한다고 한다.

협상 값에는 우선순위가 존재한다고 한다. 만약, 협상값을 클라이언트가 서버에 요청했는데, 서버에서 지원하지 않는다면?
우선순위에 따라 서버에서 지원하는 값중 가장 높은 값으로 처리되어야할것이다.

구글에서 특정 검색어 입력시 Request Header 확인시 아래와 같다.

Host

Request Header에서 Host는 요청한 호스트 정보를 말한다.
이 값은 필수인데, 그 이유가 하나의 서버가 여러 도메인을 처리해야할때 어떤 도메인으로 전달해야할지 결정하는값이 Host이기 떄문이라고 한다.(이해가 된다!)

Rocation

웹브라우저는 3XX 응답의 결과에 Location 헤더가 있으면 Location 위치로 자동으로 리다이렉트 된다고 한다.
201(Created) 응답에서도 사용 가능하다고 하며 Location 값은 요청에 의해서 생성된 리소스 URI라고한다.

이외에도 많은 헤더 정보가 있지만 그건 영한님의 강의나 Http 레퍼런스를 확인해보자..

Authorization

인증 헤더로서 클라이언트의 인증 정보를 서버에 전달합니다.

WWW-Authenticate

리소스 접근시 필요한 인증 방법을 정의하는 헤더입니다.

쿠키

쿠키를 사용할때는 2개의 Header를 사용한다고 한다.

  • Set-Cookie : 서버에서 클라이언트로 쿠키를 전달(응답)
  • Cookie : 클라이언트가 서버에서 받은 쿠키를 저장하고 Http 요청시 서버로 전달

쿠키는 모든 요청에 쿠키 정보를 자동으로 포함된다. 그래서 이를 제어하기 위한 여러가지 방법들이 존재한다.

쿠키 - 생명주기

expires : 쿠키 만료일을 지정하면 만료일이 되면 쿠키가 삭제된다.

max-age : 0이나 음수를 지정하면 쿠키를 삭제한다.

세션 쿠키 : 만료 날짜를 생략하면 브라우저 종료시 까지만 유지
영속 쿠키 : 만료 날짜를 입력하면 해당 날짜까지 유지

domain : 명시한 기준 도메인 + 서브 도메인에 한해서만 쿠키가 전달 되도록 하고, 접근 가능하도록 한다.
만약 도메인을 생략하면 현재 접속한 도메인에 대해만 쿠키 접근이 가능하고 하위 도메인에서는 불가능하다.


참고

해당 포스팅은 아래의 강의를 공부 후 개인적으로 정리한 내용입니다.
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식1
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식2

0개의 댓글