HTTP (Hypertext Transfer Protocol)는 월드 와이드 웹(WWW)에서 정보를 주고받는 데 사용되는 프로토콜입니다.
HTTP는 클라이언트와 서버 간의 통신을 위해 설계되었으며, 클라이언트가 웹 브라우저를 통해 웹페이지나 리소스를 요청하면, 서버는 이를 처리하여 요청한 정보를 제공하는 방식으로 작동합니다.
HTTP의 특징은 다음과 같습니다.
1. 웹 요청과 응답 : 클라이언트(웹 브라우저)가 웹 서버에 데이터를 요청할 때, HTTP를 사용하여 요청을 보냅니다. 서버는 요청을 받으면 해당하는 웹 페이지, 이미지, 동영상 등의 리소스를 찾아서 클라이언트에게 응답으로 돌려줍니다.
- 클라이언트 서버 구조
- Request Response 구조
- 클라이언트는 서버에 요청을 보내고, 응답을 대기
- 서버가 요청에 대한 결과를 만들어서 응답
2. 텍스트 기반 프로토콜: HTTP는 텍스트 기반의 프로토콜로, 사람이 읽고 이해하기 쉽도록 설계되어 있습니다. HTTP 요청과 응답은 헤더와 본문으로 구성되어 있으며, 헤더에는 요청 또는 응답에 대한 정보가 포함되어 있고, 본문에는 데이터가 담겨 있습니다.
3. Stateless(무상태성) 프로토콜: HTTP는 상태를 유지하지 않는 프로토콜입니다. 즉, 서버는 클라이언트의 이전 요청 상태를 기억하지 않으며, 각각의 요청은 독립적으로 처리됩니다. 이를 위해 쿠키와 세션 등의 기술이 사용되기도 합니다.
- 장점
- 서버가 클라이언트의 상태를 관리하지 않기 때문에 서버의 리소스를 효율적으로 관리하는데 도움이 됩니다.
- 확장성이 용이하고, 서버 클러스터를 이용한 고가용성 구성이 쉽습니다.
- 단점
- 클라이언트의 상태 정보를 서버가 알지 못하기 때문에 세션 관리와 같은 기능을 구현하기가 어렵습니다.
4. 비연결성(Non-persistent Connection): 클라이언트와 서버 간의 연결을 한 번 수행한 후, 하나의 요청에 대해 하나의 응답만 주고 받는 방식을 의미합니다.
- 장점 : 서버 리소스를 효율적으로 관리할 수 있다는 점입니다. 이전의 클라이언트와의 연결을 유지하지 않기 때문에, 서버는 연결 상태를 계속 유지할 필요가 없어집니다. 만약 연결 유지가 필요한 경우, 일정 시간 뒤에 연결이 자동으로 닫히도록 타임아웃을 설정할 수 있습니다.
- 단점
- 각각의 요청마다 새로운 연결을 수립해야 하기 때문에, 많은 요청과 응답이 반복되는 상황에서는 연결 수립에 따른 오버헤드가 발생할 수 있습니다.
- 이러한 오버헤드를 해결하기 위해 HTTP/1.1 이후에는 "Keep-Alive" 기능이 추가되었습니다. "Keep-Alive"를 사용하면 하나의 연결을 유지하여 여러 요청과 응답을 처리할 수 있게 됩니다.
'Back End > HTTP' 카테고리의 다른 글
[HTTP] 쿠키 (0) | 2023.07.21 |
---|---|
[HTTP] 상태코드 (aka. 200, 404 ...) (0) | 2023.07.19 |
[HTTP] HTTP 메서드 활용 (0) | 2023.07.19 |
[HTTP] HTTP 메서드 (0) | 2023.07.18 |
[HTTP] 인터넷 네트워크 (0) | 2023.07.18 |