HTTP(HyperText Transfer Protocol)는 웹에서 데이터를 전송하기 위한 애플리케이션 계층 프로토콜입니다. 웹 브라우저(클라이언트)와 웹 서버 간에 HTML 문서, 이미지, 동영상 등의 리소스를 주고받을 때 사용됩니다.
📚 HTTP는 클라이언트와 서버 간의 요청-응답(request-response) 모델을 따릅니다. 클라이언트가 서버에 요청을 보내면, 서버는 요청에 대한 응답을 전송합니다. 이 과정에서 HTTP 메소드(GET, POST, PUT, DELETE 등)와 상태 코드(200, 404, 500 등)가 사용됩니다.
웹 브라우저가 웹 서버에 리소스를 요청합니다. 주로 URL 주소를 통해 웹 서버에 접근하며, HTTP 메소드와 헤더, 본문을 포함한 요청 메시지를 전송합니다.
웹 서버는 요청받은 리소스를 처리한 후, 상태 코드와 함께 응답 메시지를 전송합니다. 응답 메시지에는 헤더와 본문이 포함되며, 본문에는 요청한 데이터가 들어있습니다.
📚 HTTP 상태 코드는 서버의 응답 상태를 나타내는 3자리 숫자입니다. 주요 상태 코드는 다음과 같습니다.
HTTP는 웹에서 데이터를 주고받기 위한 프로토콜로, 클라이언트와 서버 간 요청-응답 모델을 사용합니다. 주요 HTTP 메소드와 상태 코드를 통해 원활하는 리소스에 대한 작업을 요청하고, 서버의 응답 상태를 확인할 수 있습니다. 그러나 HTTP는 보안 기능이 없어 중간에서 데이터 탈취가 가능한 문제가 있습니다. 따라서 민감한 정보를 다루는 경우 HTTPS를 사용하는 것이 좋습니다.
📚 HTTP에서는 효율적인 데이터 전송과 사용자 경험을 위해 캐싱과 쿠키를 사용합니다.
웹 브라우저는 자주 사용되는 리소스를 캐시에 저장하여 빠르게 로딩할 수 있습니다. 이를 통해 트래픽을 줄이고 사용자 경험을 개선할 수 있습니다.
쿠키는 클라이언트의 웹 브라우저에 저장되는 작은 데이터 조각입니다. 서버는 쿠키를 사용하여 클라이언트의 상태 정보를 저장하고, 클라이언트는 쿠키를 사용하여 이전 상태 정보를 서버에 전달할 수 있습니다. 쿠키는 주로 로그인 상태 유지, 사용자 설정 저장 등에 사용됩니다.
📚 HTTP 프로토콜은 시간이 지남에 따라 발전하여 성능과 보안을 개선하고 있습니다. HTTP/1.1 이후에는 HTTP/2와 HTTP/3 프로토콜이 등장했습니다.
다중화, 서버 푸시, 헤더 압축 등의 기능을 제공하여 성능을 개선한 프로토콜입니다.
기존의 TCP 대신 QUIC 프로토콜을 사용하여 통신 지연 시간을 줄이고 성능을 더욱 개선한 프로토콜입니다.
이러한 최신 프로토콜들을 사용하면 웹 통신의 성능을 향상시킬 수 있습니다. 웹 사이트의 성능을 최적화하려면 이러한 프로토콜들을 적용하는 것도 고려해볼 만한 방법입니다.