HTTP(HyperText Transfer Protocol)는 웹 통신의 핵심 프로토콜이다. 웹 브라우저와 서버 간에 데이터를 주고받을 수 있도록 하는 HTTP는 인터넷 상에서 문서를 교환하는 표준 방법으로 널리 사용된다. 이 프로토콜은 TCP/IP 위에서 동작하며, 주로 HTML 문서, 이미지, 동영상 등의 다양한 형태의 데이터를 전송하는 데 사용된다.

HTTP는 비연결성(Connectionless)과 무상태성(Stateless)의 특징을 가지고 있다. 비연결성은 클라이언트와 서버가 통신을 마친 후 연결을 유지하지 않고, 각각의 요청과 응답이 독립적으로 처리된다는 것을 의미한다. 무상태성은 HTTP가 각 요청을 별도의 독립적인 트랜잭션으로 간주하며, 이전 요청과의 연관성을 가지지 않는다는 점이다. 이로 인해 서버는 요청이 올 때마다 새로운 상태로 처리하게 된다.
HTTP는 요청(Request)과 응답(Response) 메시지로 구성된다. 클라이언트는 서버에게 요청 메시지를 보내고, 서버는 이에 대한 응답 메시지를 반환한다. HTTP 요청 메시지는 크게 시작줄(Request Line), 헤더(Header), 본문(Body)으로 나뉜다. 시작줄에는 메서드(GET, POST 등), 요청 대상 URL, HTTP 버전이 포함되며, 헤더에는 호스트 정보와 사용자 에이전트 등의 추가 정보가 담긴다. 본문에는 주로 POST 방식에서 데이터가 포함된다.
반면, HTTP 응답 메시지는 상태줄(Status Line), 헤더(Header), 본문(Body)으로 구성된다. 상태줄에는 응답 코드(예: 200 OK, 404 Not Found)와 HTTP 버전이 포함되며, 헤더에는 응답에 대한 추가 정보가 담긴다. 본문은 클라이언트에게 전송될 실제 데이터가 포함된다.
HTTP/2는 기존의 HTTP/1.x에 비해 성능을 대폭 개선한 버전으로, 멀티플렉싱, 서버 푸시, 헤더 압축 등의 기술을 도입했다. 또한, HTTP/3는 UDP 기반의 새로운 전송 프로토콜인 QUIC을 사용하여 보다 빠르고 안정적인 데이터 전송을 제공한다. 이러한 변화는 웹 사용자의 경험을 더욱 풍부하게 만들고 있다.












