[TIL] 2020.09.02 HTTP

dev.soo·2020년 9월 2일
0

TIL

목록 보기
4/10

1. HTTP ?

HyperText Transer Protocol.

문서와 문서가 링크로 연결되도록 하는 태그로 구성된 언어인 HyperText 를 Transfer할 때 지켜야 하는 Protocole

2. HTTP 의 특징

Transfer 할 때 지켜야 할 Protocole 이므로 우선 Transfer 의 의미를 생각하보자. 웹이 동작할 때는 브라우저와 서버와 요청과 응답을 주고 받는다.
따라서 요청과 응답이 있어야 하고, 이를 주고 받을때 어떠한 형식을 지켜야 할 것이라고 예상할 수 있다.

어떤 요청이 들어왔을 때, 이에 대해 응답하면 그에 맞는 또 다른 요청이 들어올 수 있다.
그런데 새로 들어온 요청은 이전 요청에 대한 정보를 담고 있지 않는다. 각 <요청-응답>은 독립적으로 존재하며, 이를 Stateless (상태 없음) 이라고 한다.

3. Request / Response 의 구조

요청과 응답은 특정한 형식을 지켜서 보내게 된다. 우선 요청의 구조를 살펴보자.

요청과 응답은 위의 그림처럼 각각 세 부분으로 이루어져 있다.

Request

  • Start line :
    • HTTP Method : 요청이 의도한 action
    • Request target : request 가 전송되는 url
    • HTTP Version : 사용되는 HTTP version
  • Headers : 요청에 대한 메타 데이터 (Host, User-Agent, Content-Type, Content-Length 등)
  • Body : 요청의 실제 내용

Response

응답도 세 부분으로 이루어져 있다.

  • Status Line :
    • HTTP Version : 사용되는 HTTP version
    • Status Code : 요청이 의도한 action 이 어떻게 되었는지, 처리 상태를 코드로 알려줌
    • Status Text : Status Code 에 대한 간단한 텍스트 설명
  • Headers : 응답에 대한 메타 데이터
  • Body : 어떤 데이터를 요청받았을 경우 해당 데이터

4. HTTP Request Methods

HTTP Request Methods 는 앞서 요청이 의도한 action이라고 적은 바 있다. HTTP 가 요청하는 주요 action 를 명료하게 정리해 둔 내용을 참고해서 정리해보았다.

Safe : 읽기 전용으로 실행하게 되는 method 는 안전하다고 할 수 있다. 읽기 전용으로 요청되었던 데이터는 응답 전 후로 변화가 없기 때문이다.

Idempotent멱등한;연산을 여러 번 적용하더라도 결괏값이 달라지지 않는
Idempotent 한 method 는 여러번 사용해도 서버 쪽에 문제가 생기지 않는다. 예를들어, DELETE method 는 idempotent method인데, 어떤 특정 데이터에 대해 여러번 실행해도 첫 번째 요청에 따라 한 번만 삭제할 수 있기 때문이다. 반면 POST method 는 idempotent method가 아닌데, POST 를 여러번 하게 되면, 또 다른 데이터를 만들기 때문이다.

The POST method is not idempotent:
 POST /add_status -> Adds a status Change on Server side
 POST /add_status -> Adds a 2nd status Change on Server side
 POST /add_status -> Adds a 3rd status Change on Server side
 
The DELETE method is idempotent:
DELETE /delete?:id -> Returns 200 Change on Server side
DELETE /delete?:id -> Returns 404 No Change on Server side
DELETE /delete?:id -> Returns 404 No Change on Server side

5. Response Status Codes

Response Status Line 에 포함되는 Status Codes 를 한 마디로 정리한 표가 있어 가져와 보았다 껄껄.

200 OK 길만 걷게 해주세요..

출처 : https://levelup.gitconnected.com/the-simple-six-http-methods-eli15-edition-53f336b1ebd, https://developer.mozilla.org/en-US/docs/Web/HTTP/Status

0개의 댓글