HTTP(하이퍼텍스트 전송 프로토콜)는 인터넷에서 데이터를 주고받기 위한 프로토콜 중 하나이다. 주로 웹 브라우저와 웹 서버 간에 통신하는 데 사용되며, 클라이언트-서버 모델을 기반으로 한다.
여러가지 특징과 개념이 HTTP와 관련되어 있다.
상태 없음(Stateless): HTTP는 상태 없는 프로토콜이다. 각각의 요청은 이전 요청과 독립적으로 처리되며, 서버는 클라이언트의 상태를 기억하지 않는다 이는 간단하고 확장 가능한 시스템을 만들 수 있도록 도와준다.
메서드(Methods): HTTP 요청은 여러 가지 메서드를 사용한다. 가장 일반적인 메서드는 GET(리소스 가져오기), POST(데이터 전송), PUT(리소스 업로드 또는 생성), DELETE(리소스 삭제) 등이 있다.
URI(Uniform Resource Identifier): URI는 리소스를 고유하게 식별하는 데 사용된다. URL(Uniform Resource Locator)은 URI의 하위 집합으로, 특정 리소스의 위치를 지정한다.
헤더(Headers): HTTP 헤더는 요청이나 응답에 대한 부가적인 정보를 포함한다. 이 정보는 데이터의 형식, 언어, 인증 정보 등을 포함할 수 있다.
쿠키(Cookies): 쿠키는 클라이언트와 서버 간에 상태를 유지하는 데 사용된다. 서버는 클라이언트에 쿠키를 보내고, 클라이언트는 이를 저장하고 나중에 동일한 서버로 요청할 때 쿠키를 함께 보낸다.
세션(Session): 세션은 클라이언트와 서버 간의 지속적인 상태를 유지하기 위한 메커니즘 중 하나다. 쿠키를 사용하여 세션 ID를 저장하고, 서버는 이 세션 ID를 통해 클라이언트의 상태를 유지한다.
SSL/TLS: HTTP는 기본적으로 보안이 취약한 프로토콜이지만, HTTPS는 HTTP에 보안 기능을 추가한 것이다. SSL(보안 소켓 계층) 또는 TLS(전송 계층 보안) 프로토콜을 사용하여 데이터의 암호화와 안전한 통신을 제공한다.
HTTP는 웹을 비롯한 다양한 애플리케이션에서 사용되는 중요한 프로토콜 중 하나이며, 웹 브라우징 및 웹 서비스 통신에서 핵심적인 역할을 담당한다.