HTTP 프로토콜 정리

Minkyeong Kim·2021년 10월 13일
0

[boostcourse] Web-Backend

목록 보기
1/55

HTTP

  • Hypertext Transfer Protocol

  • 서버와 클라이언트가 인터넷 상에서 데이터를 주고받기 위한 프로토콜

  • 서버/클라이언트 모델을 따름

  • 장점

    • 불특정 다수를 대상으로 하는 서비스에 적합
    • 클라이언트와 서버가 계속 연결된 형태가 아님 -> 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답 처리 가능
  • 단점

    • 무상태(Stateless)이기 때문에 연결이 끊겨 클라이언트의 이전 상황을 알 수가 없다.
    • 정보를 유지하기 위해서 Cookie와 같은 기술이 등장

  • methods
    GET : 정보를 요청하기 위해서 사용 (SELECT)
    POST : 정보를 등록하기 위해서 사용 (INSERT)
    PUT : 정보를 업데이트하기 위해서 사용 (UPDATE)
    DELETE : 정보를 삭제하기 위해서 사용 (DELETE)
    HEAD : (HTTP)헤더 정보만 요청, 해당 자원이 존재하는지 혹은 서버에 문제가 없는지를 확인하기 위해서 사용
    OPTIONS : 웹서버가 지원하는 메서드의 종류 요청
    TRACE : 클라이언트의 요청을 그대로 반환, ex) echo 서비스로 서버 상태를 확인하기 위한 목적으로 주로 사용

HTTPS

  • HyperText Transfer Protocol over Secure Socket Layer

  • SSL이나 TLS 프로토콜을 통해 세션 데이터를 암호화 -> HTTP에서 보안이 강화된 버전

Requests

  • 클라이언트가 서버에 있는 명명된 호스트에 보냄

  • 서버에 있는 자원에 접근하기 위함

  • 서버의 자원에 접근하기 위해 필요한 정보를 담고있는 URL의 컴포넌트를 사용해 request 생성

  • 구성

    • request line
      method, 요청을 위한 url의 경로 구성요소, http version을 한줄에 포함
    • HTTP headers
      메시지, 보낸 사람 및 보낸 사람이 받는 사람과 통신하려는 방식에 대한 정보를 제공
      서버가 어떻게 요청에 response할 지 결정할 때 사용 가능한 정보를 담음
    • message body
      모든 http 메시지의 body content
      POST method 사용 시 message body에 input data를 담아 서버에 전송
      GET method 사용 시 message body 사용하지 않음

Responses

  • 서버에서 클라이언트에게 보내짐

  • 클라이언트가 요청한 자원을 제공하거나 요청한 작업이 수행되었거나 프로세싱 중 에러가 발생했음을 클라이언트에 알린다

  • 구성

    • status line
      http version number, status code, reason phrase(a.k.a status text)를 한줄에 보여줌
    • headers
      response, server에 대한 정보를 담음
      request가 성공적으로 수행되지 않았으면 request를 완료하기 위해 필요한 것들을 클라이언트에 알림
    • message body
      클라이언트가 요청한 자원 또는 요청에 대한 상태 정보를 포함
      에러의 이유나 요청 수행을 위해 필요한 것들도 포함

URL

  • Uniform Resource Locator

  • 인터넷 상 자원(리소스)의 위치

  • 특정 웹 서버의 특정 파일에 접근하기 위한 경로 혹은 주소

REFERENCES

https://www.boostcourse.org/web326/lecture/58942?isDesc=false

https://www.ibm.com/docs/en/cics-ts/5.2?topic=concepts-http-protocol

0개의 댓글