Skip to content

Latest commit

 

History

History
81 lines (45 loc) · 2.98 KB

http.md

File metadata and controls

81 lines (45 loc) · 2.98 KB

HTTP?

  • HTTP(HyperText Transfer Protocol)는 문서 간의 링크를 전송하는 프로토콜 80번 포트 사용

    HTML 메시지에 HTML 뿐만 아니라 텍스트나 이미지, 음성, 영상 등 거의 모든 형태의 데이터가 전송이 가능하며 서버간의 데이터 전송 시에도 대부분 HTTP를 사용한다.

클라이언트 서버 구조

  • Request Response 구조
  • 클라이언트가 서버에 요청을 보내고 응답을 대기
  • 서버가 요청에 대한 결과를 만들어 응답
  • 비지니스 로직과 데이터는 모두 서버가 처리하고 UI 등은 클라이언트가 처리한다
  • 클라이언트와 서버의 분리를 통해 클라이언트와 서버가 각각의 성장이 가능

Stateless(무상태 프로토콜)

  • 서버가 클라이언트의 상태를 보존하지 않기 때문에 클라이언트는 이어지는 요청이라도 반복해서 보내야 한다

  • 장점

    • 데이터를 저장해두지 않아도 되기 때문에 응답 서버를 쉽게 바꿀 수 있으며 서버의 확장성이 높다
  • 단점

    • 클라이언트가 너무 많은 데이터를 보내게 된다

비연결성(Connectionless)

  • HTTP는 기본이 연결을 유지하지 않는 모델

  • 1시간 동안 수천명이 사용해도 실제 서버에서 동시에 처리하는 요청은 수십개 이하로 매우 작다

  • 서버의 자원을 매우 효율적으로 사용할 수 있다

    하지만 요청마다 TCP/IP 연결을 새로 맺어야 하기 때문에 3 way handshake 시간이 추가된다

    웹 브라우저 사이트를 요청하면 HTML, JS, CSS, 이미지 등 수많은 자원이 함께 다운로드 된다

  • 현재는 HTTP 지속 연결(Persistent Connections)로 문제를 해결

HTTP 요청 메소드

  • GET : 요청받은 정보를 검색하여 응답
  • POST : 자원 생성(CREATE)에 사용
  • PUT : 자원 전체 수정(UPDATE)에 사용
  • PATCH : 자원 일부 수정시 사용
  • DELETE : 자원 삭제(DELETE)에 사용

HTTP 응답 코드

  • 1xx : 정보 교환
  • 2xx : 데이터 전송이 성공적으로 이루어졌거나, 이해됐거나, 수락되었음
  • 3xx : 자료의 위치가 변경되었음
  • 4xx : 클라이언트 측 오류
  • 5xx : 서버 측의 오류

HTTPS 란?

  • HTTP에는 데이터를 주고 받을 때 암호화가 되지 않기 때문에 보안에 취약

    이러한 문제를 해결하기 위해 중요한 정보를 주고 받을 때 도난당하는 것을 막게 하는 프로토콜이 생성 이를 HTTPS 라고 함.

  • SSL(Secure Socket Layer)이라는 프로토콜을 사용해 주고 받는 정보를 암호화 한다.

    이후 SSL은 TLS(Transport Layer Security)로 발전되어 현재는 SSL/TLS라는 단어를 혼용해서 사용하고 있다.

image-20221228101442044

  • 장점
    • 웹사이트의 무결성을 보호해준다.
  • 단점
    • 모든 사이트에서 텍스트를 암호화해서 주고 받으면 과부하가 걸려 속도가 느려질 수 있다.