[NETWORK] HTTP

bin·2022년 12월 28일
0

HTTP 특징

1. 클라이언트 서버 구조

  • Request Response 구조
  • 클라이언트는 서버에 요청을 보내고, 응답을 대기
  • 서버가 요청에 대한 결과를 만들어서 응답

2. 무상태 프로토콜 (Stateless)

  • 서버가 클라이언트의 상태를 보존X
  • 중간에 서버가 장애가 나더라도 스케일 아웃(수평 확장)으로 해결 가능
  • 모든 것을 무상태로 설계할 수 있는 경우(로그인 필요없는 화면)도 있고, 없는 경우(상태 유지가 필요한 로그인)도 있다.
  • 상태 유지는 최소한만 사용

3. 비 연결성 (Connectionless)

  • HTTP는 기본이 연결을 유지하지 않는 모델
  • 최소한의 자원 유지 => 서버 자원의 매우 효율적인 사용

비 연결성의 한계와 극복

  • TCP/IP 연결을 새로 맺어야 함 - 3 way handshake 시간 추가
  • 웹 브라우저로 사이트를 요청하면 HTML, js, css, 추가 이미지 등 수많은 자원이 함께 다운로드
  • 지금은 HTTP 지속 연결로 문제 해결

HTTP 메시지 구조

시작 라인

  • 요청 메시지 (request-line, HTTP 메서드, 요청대상, HTTP 버전)
  • 응답 메시지 (status-line, HTTP 버전, HTTP 상태 코드, 이유 문구)

HTTP 헤더

  • field-name":" OWS field-value OWS (OWS:띄어쓰기 허용)
  • field-name은 대소문자 구분 없음
  • HTTP 전송에 필요한 모든 부가정보를 담고 있음

HTTP 메시지 바디

  • 실제 전송할 데이터
  • byte로 표현할 수 있는 모든 데이터 전송 가능 (Ex. HTML 문서, 이미지, 영상, JSON 등)

📒 출처 : 모든 개발자를 위한 HTTP 웹 기본 지식 by 김영한

0개의 댓글