본문 바로가기

CS 공부

HTTP란?

HTTP(HyperText Transfer Protocol) = 하이퍼텍스트 전송 프로토콜

=> 웹상에서 정보를 주고 받을 수 있는 프로토콜

  • 클라이언트와 서버 간의 데이터를 주고받는 데 사용되며, 웹 브라우저와 웹 서버 사이의 상호작용에 주로 활용됨.
  • HTTP가 요청/응답 (request, response) 형태로 데이터를 전송하는 프로토콜임. 데이터 요청을 보내고 (request), 수신한 요청에 대한 응답을 보내주는 (response) 방식으로 데이터를 전달하기에 요청이 없다면 서버에서 먼저 데이터를 보내지 않는다는 것입니다.

http 특징

  1. 클라이언트와 서버 간의 상호작용을 기반으로 하는 모델
  2. 요청/응답 (request, response) 형태로 데이터를 전송하는 프로토콜임. 데이터 요청을 보내고 (request), 수신한 요청에 대한 응답을 보내주는 (response) 방식으로 데이터를 전달하기에 요청이 없다면 서버에서 먼저 데이터를 보내지 않는다는 것입니다.
  3. 비연결성
  • 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를 선택하는 이유

  1. 보안
  2. 성능
  • HTTPS는 HTTP 요청 및 응답을 SSL 및 TLS 기술에 결합합니다.
  • HTTPS 웹 애플리케이션은 HTTP 애플리케이션보다 로드 속도가 더 빠릅니다.

3. 권위

  • 검색 엔진은 HTTP의 신뢰성이 더 낮기 때문에 보통 HTTP 웹 사이트 콘텐츠의 순위를 HTTPS 웹 페이지보다 낮게 지정합니다.

HTTP 프로토콜은 어떻게 작동하나요?

  1. 요청과 응답
  2. 클라이언트가 요청 메세지를 생성하고 서버에 보냄.
  • 이 요청 메시지는 요청 방식(예: 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