HTTP(HyperText Transfer Protocol)

Jan 11, 2024
HTTP(HyperText Transfer Protocol)
 
HTTP는 웹 상에서 데이터를 주고받기 위한 프로토콜 중 하나이다. HTTP는 클라이언트와 서버 간의 통신을 담당하여 웹 페이지의 요청과 응답을 처리한다.
 
notion image
 
클라이언트가 웹 서버에게 자료를 요청한다. 이때 클라이언트는 브라우저(크롬, 익스플로어) 등을 이용해 URL 을 입력한다.
예를 들어 http://www.abcd.com/USER/login.html 을 입력하게 되면 웹서버에 login.html 파일을 요청한 것이다.
 
이 과정을 HTTP 요청 메서드라고 한다.
요청을 할때 요청 데이터가 전송되는데 다음과 같다.
 
 
notion image
 

Request Header

 
notion image
요청 데이터는 헤더와 바디를 가지고 있다. 헤더는 명령을 수행할 메서드가 있다. 그림에서는 POST 메서드를 가지고 있다. 그리고 출발지의 IP 주소와 URL 을 가지고 있다. 요청인 경우는 바디값은 없다.
 

Response HTTP

 
notion image
요청 HTTP 의 헤더에는 각 호스트의 IP 가 표기되고 MIME 이 표시된다.
MIME 은 바디 데이터의 확장자를 의미한다. 사진에는 html 확장자로 표기되어 있다.
그리고 바이트 단위로 조각난 데이터를 다시 인코딩해야할 때도 필요한게 charset이다.
charset(Charactor set) 로 컴퓨터 시스템에서 문자를 저장하기 사용되는 특정한 문자열의 집합이다. 보통 UTF-8 을 사용하고, 그림에서는 iso-8859-1 를 사용한다.
바디에는 요청한 데이터의 내용이 포함된다.
 
 
💡
HTTP 통신은 요청이 오면 응답을 하고 통신이 종료되기 때문에 반이중 통신이다. Stateless 라고도 하며 클라이언트의 상태를 관리하지 않기 때문에 확장성과 유연성이 높아질 수 있다. 반대로 클라이언트와 서버의 연결을 유지하는 것은 Stateful 이라고 한다.
 
Share article
RSSPowered by inblog