HTTP(HyperText Transfer Protocol) = 하이퍼텍스트 전송 프로토콜
=> 웹상에서 정보를 주고 받을 수 있는 프로토콜
- 클라이언트와 서버 간의 데이터를 주고받는 데 사용되며, 웹 브라우저와 웹 서버 사이의 상호작용에 주로 활용됨.
- HTTP가 요청/응답 (request, response) 형태로 데이터를 전송하는 프로토콜임. 데이터 요청을 보내고 (request), 수신한 요청에 대한 응답을 보내주는 (response) 방식으로 데이터를 전달하기에 요청이 없다면 서버에서 먼저 데이터를 보내지 않는다는 것입니다.
http 특징
- 클라이언트와 서버 간의 상호작용을 기반으로 하는 모델
- 요청/응답 (request, response) 형태로 데이터를 전송하는 프로토콜임. 데이터 요청을 보내고 (request), 수신한 요청에 대한 응답을 보내주는 (response) 방식으로 데이터를 전달하기에 요청이 없다면 서버에서 먼저 데이터를 보내지 않는다는 것입니다.
- 비연결성
- HTTP 통신은 요청이 있을때만 연결을 유지하고, 이후 응답으로 데이터를 보내고 나면 연결을 종료하는 '비연결성'의 특징이 있습니다.
- 각 요청과 응답 간에 연결을 유지하지 않습니다. 이는 서버 자원을 효율적으로 활용하게 하지만, 매 요청마다 새로운 연결을 설정해야 하므로 일부 지연이 발생할 수 있습니다.
=> 데이터 전송이 필요할 때에만 연결이 이루어지기 때문에, 실제 사용자가 수천명이여도 대비 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작아집니다. 따라서, 서버 자원을 매우 효율적으로 사용할 수 있습니다.
=> Socket 통신은 연결성의 특징을 가지고 있음
클라이언트와 서버가 계속해서 연결을 유지하기 때문에 실시간으로 데이터를 주고받을 수 있음.
4. 무상태성 = 서버가 클라이언트의 상태를 보존하지 않는다는 뜻
- 각 요청이 다른 요청과 독립적으로 처리됩니다. 이는 이전 요청과 상태 정보를 서버가 유지하지 않는다는 것을 의미하며, 클라이언트가 모든 필요한 정보를 제공해야 합니다.
=> 매 요청에 첫 응답인 것처럼 동작함. 그래서 요청 시, 이전에 보냈던 데이터를 함께 보내줘야 함
=> 이러한 단점을 보완하기 위해 쿠키 & 세션 같은 기능들이 생겨남.
HTTP의 변화
HTTP / 3.0에서의 가장 핵심적인 변화는 전송 프로토콜이 바뀌었다는 점입니다. 기존 HTTP/1.1 버전과 HTTP/2 버전은 TCP 프로토콜을 사용하였습니다. TCP는 신뢰성 있는 데이터 전송을 보장하지만, 3-way-handshake를 포함한 다양한 기능들의 제공으로 인해 UDP보다 상대적으로 헤더가 크고 전송 속도가 느리다는 단점이 있습니다.
따라서, 구글에서는 UDP를 기반으로한 QUIC 이라는 프로토콜을 개발하였고 이는 HTTP/3로 표준화 되었습니다. 기존 HTTP/2에 대비하여 Zero RTT, 패킷 손실에 대한 빠른 대응, 향상된 연결성 등의 장점을 가지게 되었고 전송 속도 또한 향상 되었습니다. HTTP/3를 지원하는 주요 웹 사이트로는 Google, Youtube, Facebook, instagram 등이 있습니다.
- HTTP/1.1 , HTTP/2 -> TCP 사용
- HTTP/3 -> UDP 기반의 QUIC 사용
HTTP와 HTTPS의 차이점
=> HTTP는 보안이 취약한 프로토콜이며, HTTPS는 데이터를 안전하게 전송하기 위해 암호화를 사용하는 보안된 버전의 HTTP입니다.
HTTP보다 HTTPS를 선택하는 이유
- 보안
- 성능
- HTTPS는 HTTP 요청 및 응답을 SSL 및 TLS 기술에 결합합니다.
- HTTPS 웹 애플리케이션은 HTTP 애플리케이션보다 로드 속도가 더 빠릅니다.
3. 권위
- 검색 엔진은 HTTP의 신뢰성이 더 낮기 때문에 보통 HTTP 웹 사이트 콘텐츠의 순위를 HTTPS 웹 페이지보다 낮게 지정합니다.
HTTP 프로토콜은 어떻게 작동하나요?
- 요청과 응답
- 클라이언트가 요청 메세지를 생성하고 서버에 보냄.
- 이 요청 메시지는 요청 방식(예: GET, POST), 요청 대상 URL, 헤더 정보(요청에 대한 추가 정보), 및 필요한 데이터를 포함합니다.
3. 서버처리
- 서버는 클라이언트의 요청을 받아들이고 해당 요청을 처리함.
4. 응답 메세지 : 서버는 클라이언트에게 응답 메시지를 반환합니다.
- 응답 메시지는 상태 코드(예: 200 OK, 404 Not Found)와 함께 응답 데이터를 포함합니다
- 200 - OK(정상)
- 400 - Bad request(잘못된 요청)
- 404 - Resource not found(리소스를 찾을 수 없음)
-> 이러한 방식으로 HTTP는 웹 브라우저와 웹 서버 간의 상호작용을 가능하게 하며, 웹 페이지 및 웹 리소스의 요청 및 전송을 관리합니다.
출처 https://rachel0115.tistory.com/entry/HTTP%EB%9E%80-%EB%B2%84%EC%A0%84-%ED%8A%B9%EC%A7%95
'CS 공부' 카테고리의 다른 글
머신러닝과 딥러닝의 차이점 (0) | 2023.11.14 |
---|---|
프로토콜이란? (0) | 2023.11.14 |
프레임워크란? (2) | 2023.11.14 |
SQL이란? (0) | 2023.11.14 |
쿠키와 세션에 대해 (0) | 2023.11.10 |