본문 바로가기
공부낙서장

HTTP 개요

by 곰인간 2023. 7. 16.

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜이다.

HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트 - 서버 프로토콜이기도 하다.

클라이언트 - 서버 프로토콜이란 (보통 웹브라우저인)수신자 측에 의해 요청이 초기화되는 프로토콜을 의미한다.

하나의 완전한 문서는 텍스트, 레이아웃 설명, 이미지, 비디오, 스크립트 등 불러온(fetched) 하위 문서들로 재구성된다.

이미지 출처: MDN HTTP 개요

 

클라이언트와 서버들은 데이터 스트림과 대조적으로 개별적인 메시지 교환에 의해 통신한다.

보통 브라우저인 클라이언트에 의해 전송되는 메시지를 요청(request)라 하며,

반대로 요청에 대한 서버의 답변을 응답(response)라고 한다.

이미지 출처: MDN HTTP Layers

HTTP는 거듭하여 진화해온 확장 가능한 프로토콜이다.

HTTP는 애플리케이션 계층의 프로토콜로, 신뢰 가능한 전송 프롵토콜이라면 이론상으로는 무엇이든 사용할 수 있으나,

TCP 또는 암호화된 TCP 연결인 TLS를 통해 전송된다.

HTTP의 확장성 때문에, 하이퍼텍스트 문서, 이미지, 비디오, HTML폼 결과와 같은 내용을 서버로로 PST 하기 위해서도 사용된다.

또한 필요할 때 마다 웹 페이지를 갱신하기 위해 문서의 일부를 가져오는데 사용될 수도 있다.


HTTP 기반 시스템의 구성요소

HTTP는 클라이언트 - 서버 프로토콜이고, 요청은 하나의 개체, 사용자 에이전트 또는 그것을 대신하는 프록시에 의해 전송된다.

대부분의 경우, 사용자 에이전트는 브라우저지만, 무엇이든 될 수 있다.

각각의 개별적인 요청(request)들은 서버로 보내지며, 서버는 요청을 처리하고 응답(response)를 제공한다.

이 요청과 응답 사이에는 여러 개체들이 있는데, 예를 들면 다양한 작업을 수행하는 게이트웨이 또는 캐시 역할을 하는 프록시 등이 있다.

이미지 출처: MDN client-server-chain

 

실제로는 브라우저와 요청을 처리하는 서버 사이에는 많은 컴퓨터들이 존재한다.
(라우터, 모뎀 등)

웹의 계층적인 설계 덕분에, 네트워크와 전송 계층 내로 숨겨진다.

HTTP는 애플리케이션 계층의 최상위에 있다.

네트워크 문제를 진단하는 것도 중요하지만, 기본 레이어들을 HTTP의 명세와는 거의 관련이 없다.



HTTP에 대해서 이해 할 것.

댓글