http 프로토콜에 대한 개념 정리하기
http 프로토콜
HTTP(하이퍼텍스트 전송 프로토콜, HyperText Transfer Protocol)는 웹 상에서 정보를 주고받기 위한 프로토콜로, 클라이언트와 서버 간의 통신이 가능하다. HTTP는 인터넷 상에서 가장 널리 사용되는 프로토콜 중 하나로, 웹 브라우저와 웹 서버 간의 데이터를 교환하는 데 사용된다.
http 프로토콜의 주요 특징
- 클라이언트-서버 모델
- 클라이언트(웹 브라우저 등)가 서버(웹 서버)에 요청(request)을 보내면, 서버는 요청에 대한 응답(response)을 반환한다.
- 무상태 프로토콜(Stateless Protocol)
- 각 요청은 서로 독립적이며, 이전 요청과 다음 요청 간의 연관성을 유지하지 않는다. 서버는 클라이언트의 상태를 저장하지 않으며, 매 요청마다 새로운 연결을 수립한다.
- 비연결형(Connectionless)
- 클라이언트가 요청을 보내고 서버가 응답을 반환하면, 그 연결은 끊어지는데, 이후 요청을 위해 새로운 연결을 생성한다. HTTP/1.1에서는 이를 보완하기 위해 지속 연결(persistent connection)을 도입했다.
- 요청과 응답(Request and Response)
- HTTP 통신은 요청(request)과 응답(response)으로 구성된다. 클라이언트는 서버에 특정 리소스를 요청하고, 서버는 그 요청에 대한 응답을 반환한다.
- 요청: 요청 메서드, URL, 헤더, 바디로 구성
- 응답: 상태 코드, 헤더, 바디로 구성
- HTTP 통신은 요청(request)과 응답(response)으로 구성된다. 클라이언트는 서버에 특정 리소스를 요청하고, 서버는 그 요청에 대한 응답을 반환한다.
- URI(Uniform Resource Identifier)
- HTTP는 리소스를 식별하기 위해 URI를 사용한다.
- URI는 URL(Uniform Resource Locator)과 URN(Uniform Resource Name)을 포함한다.
- 요청 메서드
- HTTP는 다양한 요청 메서드를 지원하는데, 대표적인 메서드로는 GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH 등이 있다.
- GET: 서버에서 리소스 요청
- POST: 서버에 데이터를 제출해 리소스를 생성하거나 업데이트
- PUT: 서버에 데이터를 제출해 리소스를 생성하거나 대체
- DELETE: 서버에서 리소스 삭제
- HTTP는 다양한 요청 메서드를 지원하는데, 대표적인 메서드로는 GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH 등이 있다.
- 상태 코드(Status Codes)
- HTTP 응답에는 요청의 성공 여부를 나타내는 상태 코드가 포함된다. 상태 코드는 3자리 숫자로 구성되며, 1xx(정보), 2xx(성공), 3xx(리다이렉션), 4xx(클라이언트 오류), 5xx(서버 오류)로 분류된다.
- 200 OK: 요청을 성공적으로 처리
- 404 Not Found: 요청한 리소스를 찾을 수 없음
- 500 Internal Server Error: 서버에서 오류 발생
- HTTP 응답에는 요청의 성공 여부를 나타내는 상태 코드가 포함된다. 상태 코드는 3자리 숫자로 구성되며, 1xx(정보), 2xx(성공), 3xx(리다이렉션), 4xx(클라이언트 오류), 5xx(서버 오류)로 분류된다.
- 확장성
- HTTP는 확장성이 뛰어나며, 새로운 기능을 추가하기 위해 확장이 가능합니다. 예를 들어, 쿠키(Cookie), 세션(Session), 캐싱(Caching) 등의 메커니즘을 통해 HTTP의 기능을 확장할 수 있다.
- 보안
- HTTP 자체는 보안이 제공되지 않는 프로토콜입니다. 그러나 HTTPS(HyperText Transfer Protocol Secure)를 사용하여 SSL/TLS 암호화를 통해 보안을 강화할 수 있다. HTTPS는 HTTP 통신을 암호화하여 데이터의 기밀성과 무결성을 보장한다.
Comments