HTTP 기본

성호창·2022년 3월 20일

해당 글은 인프런 김영한님의 영상을 보고 정리한 글입니다. 출처

HTTP 특징

클라이언트 서버 구조

Reqeust,Response 구조
서버 -> 클라이언트에 요청,응답 대기
클라이언트 ->서버 요청에 응답

무상태 프로토콜(stateless)

서버가 클라이언트의 상태를 보존X
응답 서버를 쉽게 바꿀 수 있다 ->무한한 서버 증설 가능

장:서버 확장성 높음
단:클라이언트가 추가 데이터 전송

한계: 모든 것을 무상태로 설계할 수 없는 경우 존재
ex) 로그인과 같이 상태를 서버에 유지해야 하는 경우(브라우저 쿠키, 서버 세션 사용해서 상태 유지)

비연결성(connectionless)

stateful vs stateless

stateful : 서버가 여러 클라이언트와 연결 계속 유지 -> 서버 자원 소모

stateless : 서버가 클라이언트와 연결 유지 x -> 최소한의 자원 유지(요청 주고 받을 때만 연결하기 때문)

stateless

연결 유지 x 모델
초 이하 빠른 속도로 응답
서버 자원 효율적으로 사용 가능

stateless 한계/극복

  • 3way handshake로 시간 추가 필요
  • html뿐만 아니라 css 등 여러 자원도 함께 다운로드됨
    => HTTP 지속연결(Persistent Connetcions)로 극복

HTTP메시지

구조


HTTP메시지 start line :
http 요청 메시지에서는 request-line
http 응답 메시지에서는 status-line
SP = 공백
CRLF = 엔터

start-line

request-line = method SP request-target SP HTTP-version CRLF
status-line = HTTP-version SP status-code SP reason-phrase CRLF


header-field = field-name ":" OWS field-value OWS
field-name -> 대소문자 구분X
OWS : 띄어쓰기 허용

message body

실제 전송할 데이터

단순함, 확장 가능

0개의 댓글