본문 바로가기

Books/about dev

[깔끔한 파이썬 탄탄한 백엔드] 4장 HTTP의 구조 및 핵심 요소

4장 HTTP의 구조 및 핵심 요소


  • HTTP 통신 방식
    • 요청(request)과 응답(response)
    • stateless
           각각의 HTTP통신은 독립적이며 그 전에 처리된 HTTP통신에 대해서 전혀 알지 못한다.
      요청을 보낼 때 필요한 모든데이터를 매번 포함시켜야한다
  • HTTP 요청(request) 구조
    1. Start Line
      GET /search HTTP/1.1
      

      HTTP 메소드| Request target | HTTP version

    2. Headers
      • key:value ex) HOST : google.com
      • Accept : 해당 요청이 받을 수 있는 응답 body 데이터 타입을 알려 줄 수 있는 헤더
        • MIME type이 value로 지정된다.
    3. Body
  • HTTP 응답(response) 구조
    1. Status Line
      HTTP/1.1 404 Not Found
      

      HTTP Version | Status Code | Status Text

    2. Headers
      • 응답에서만 사용되는 헤더값이 있다. ex) server헤더
    3. Body
  • 자주 사용되는 응답
  • API 엔드포인트 아키텍쳐 패턴
    1. REST(Representation State Transfer)ful HTTP API
      • API에서 전송하는 리소스를 URI로 표현하고 해당 리소스에 행하고자 하는 의도를 HTTP 메소드로 정의하는 방식.
      • self-descriptiveness; 엔드포인트의 구조만 보더라도 제공하는 리소스와 기능을 파악할 수 있다. 구조가 훨씬 직관적이며 간단해진다.
      • API 구조가 특정 클라이언트에 맞추어져서 다른 클라이언트에서 사용하기에 적합하지 않다.
    2. GraphQL
      • 페이스북이 만든 방식, REST 방식의 API와는 다르게 엔드포인트가 하나. 이 엔드포인트에 클라이언트가 필요한 것을 정의해서 요청하는 방식.