HTTP

Ramne·2021년 7월 29일
0

네트워크

목록 보기
5/8

HTTP는 웹 브라우저와 서버의 소통을 원활하게 하기 위해 디자인되었는데
클라이언트가 HTTP messages 양식에 맞춰 요청을 보내면, 서버도 양식에 맞춰 응답한다.

HTTP는 Connectless Stateless 특징을 지니고 있는데,

서버는 무궁무진한 클라이언트 모두를 대상으로 리터치와 같은 케어를 할 수 가 없기에
클라이언트가 서버에서 응답을 받는 즉시 연결은 끊어지며, 매번 새로운 요청을 해야한다.

따라서 클라이언트가 서버에 추가 요청을 보낼 때, 서버는 이전 요청을 기억할 수 없는데,
이 문제는 cookies를 이용해 해결한다.

cookies

이전 통신에서 생성되어 다음 통신에서 사용 가능한 작은 정보 조각.

이 작은 정보 조각을 함께 주고받음으로써,
서버는 클라이언트를 특정하고 이전 요청을 기억할 수 있게 된다.

HTTP messages

클라이언트와 서버 사이에서 데이터가 교환되는 방식으로 응답과 요청 두 종류가 있다.

모든 HTTP messages는 첫 줄과 HTTP headers를 묶은 헤드(head)와 본문(body)로 구성된다.

요청 ; Requests to server

클라이언트가 서버에 보내는 메시지

Start line

  1. HTTP method
    수행할 작업이나 방식에 따른 메소드

  2. 대상(경로)
    그 형식은 HTTP method 마다 다르다.

    origin 형식 : 절대 경로로, POST, GET, HEAD, OPTIONS 등의 method와 함께 사용한다.
    absolute 형식 : 완전한 URL 형식. 프록시에 연결하는 경우 GET과 함께 사용한다.
    asterisk 형식 : OPTIONS 와 별표(*)로 서버 전체를 표현한다.
    authority 형식 : 도메인 이름과 포트 번호로 이루어진 URL.
    HTTP 터널 구축 시, CONNECT와 함께 사용한다.

  3. HTTP 버전

응답 ; Responses to client

서버가 클라이언트에게 보내는 메세지

Status line

  1. 현재 프로토콜의 버전 (HTTP/1.1)
  2. 상태 코드 - 요청의 결과 (200, 302, 404 등)
  3. 상태 텍스트 - 상태 코드에 대한 설명
profile
💡

0개의 댓글