📁 HTTP
하이퍼 텍스트 전송 프로토콜 Hyper Text Transfer Protocol
서버와 클라이언트 사이에서 웹 문서를 주고받기 위해 사용하는 규칙
클라이언트가 요청(request)를 보내면 그에 대해 서버가 응답(response)하는 방식으로 이루어진다.
클라이언트가 보내는 건 요청 메세지이고, 서버가 보내는 것은 응답 메세지라고 한다.
메세지는 기본적으로 헤더(header)와 바디(body)로 구성된다.
- 헤더 : 본문 앞에 추가되는 데이터
- 바디 : 본문 데이터
📁 HTTP 메서드
클라이언트에서 서버에 보내는 요청 메세지를 전송하는 방법
HTTP는 리소스를 위주로 정의되어 있으며, 리소스는 각자 고유한 URL을 가지고 있다.
가령, 티스토리에서 카테고리에 있는 글 전체를 조회하는 URL은 mrge.tistory.com/category 이다.
여기서 ect 카테고리에 있는 글만 조회하는 URL은 mrge.tistory.com/category/ect로 표시된다.
현재 많이 사용되는 HTTP 메서드는 5가지가 있는데 리소스에 대한 어떤 처리를 요청하는지에 따라 다르게 정의되어 있다.
📂 GET
📂 POST
📂 PUT
📂 DELETE
📂 PATCH
📂 GET
서버에 특정 리소스를 요청하는 메서드
GET은 안전한 요청을 위한 메서드이기 때문에 순수하게 데이터를 읽는 요청에만 사용된다.
서버의 상태를 바꾸거나 데이터에 변경을 가하는 요청에 사용되어서는 안된다.
간단한 데이터를 전송하도록 설계되어 있어 필요한 데이터는 매개변수로 헤더에 포함시킬 수 있다.
일반적으로는 바디를 가지고 있지 않아 보내는 데이터 양에 제한이 있다.
같은 요청을 반복해도 항상 동일한 응답을 받으며, 캐싱이 가능해 저장된 값을 사용해 속도가 향상될 수 있다.
📂 POST
데이터를 보내고 서버에서 그 데이터를 처리해달라고 요청하는 메서드
서버 상태나 데이터에 변경을 가할 수 있기 때문에 그다지 안전한 메서드는 아니다.
새로운 리소스를 생성하거나 입력받은 데이터를 서버 쪽에서 처리하려는 목적으로 사용된다.
데이터는 바디에 포함시켜서 전송하기 때문에 많은 양의 데이터를 전송할 수 있다.
또한 데이터가 URL에 노출되지 않기 때문에 보안 측면에서 우수하다.
같은 요청을 반복했을 때 동일한 응답을 얻는다는 보장이 없으며, 안전하지 않다는 속성 탓에 캐싱이 불가능하다.