Jin's Dev Story

[네트워크] HTTP & HTTPS 본문

CS 지식/[네트워크]

[네트워크] HTTP & HTTPS

woojin._. 2023. 7. 17. 14:30

HTTP Method

종류 기능
GET 데이터 조회
POST 요청 데이터 처리(보통 데이터 등록 사용)
PUT 데이터 변경 (해당 데이터가 없으면 생성)
PATCH 일부 데이터만 변경
DELETE 데이터 삭제

 

1) HTTP 1.0

  • 단기 커넥션(shrot-live connections) : 요청 날릴 때마다 커넥션 맺고 끊어짐
  • Request를 날릴 때마다 Connection을 새로 생성해야 함
  • Data를 압축해서 전달 가능하도록 하여 전달하는 Data 양이 감소

2) HTTP 1.1

  • 지속 커넥션(Persistent connection) : 커넥션 재사용 가능
  • HTTP 파이프라이닝(Pipelining) : Request를 미리 여러 개 서버에 날릴 수 있음 (이전엔 리퀘스트 하나보내고, Response 받고, 그 다음 request 보내는 방식이었는데, 파이프라이닝 방식에서는 Request를 연속적으로 보내놓고 Reponse를 받는 방식)
  • 단점 : Head Of Line Blocking  => 요청한 Request에 문제가 생겨 응답이 늦어지면 그 다음 Request의 응답들도 같이 늦어짐

3) HTTP 2.0

  • Multiplexing : 프레임 단위로 나눠서 전송 관리 가능하게 됨 (다수의 요청과 응답이 가능한 구조)
  • 데이터 전송 방식 : 바이너리로 인코딩하여 전송
  • ServerPush 사용 : 브라우저에서 필요한 리소스들을 서버가 알아서 찾아다가 내려주는 것
  • 캐싱되지 않은 리소스를 받아올 때
  • 페이지에서 필요한 리소스가 페이지를 내려주는 서버에 있을 때

HTTP(HyperText Transfer Protocol)

  • 인터넷 상에서 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약
  • 80 port
  • HTTP는 텍스트 교환이므로, 누군가 네트워크에서 신호를 가로채면 내용이 노출되는 보안 이슈가 존재 → 이런 보안 문제를 해결해주는 프로토콜이 ’HTTPS’

HTTPS(HyperText Transfer Protocol Secure)

  • 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 사용해 클라이언트와 서버가 자원을 주고 받을 때 쓰는 통신 규약
  • 443 port
  • HTTPS는 텍스트를 암호화 (공개키 암호화 방식으로)
  • SSL은 대칭키, 공개키 함께 사용
    • 데이터 전달 시 대칭키를 쓰고, 그 대칭키를 교환할 때는 공개키 사용