Overview
오늘은 HTTP 메서드에 대해서 공부해보려고 한다.
HTTP 메서드(Method)란?
HTTP 메서드는 클라이언트가 웹 서버에게 어떤 종류의 동작을 원하는지를 나타내는 방법이다.
각 메서드는 특정한 종류의 작업을 수행하도록 설계되었다.
`GET`
주로 서버에서 정보를 조회할 때 사용한다. (Get)
GET 요청은 데이터를 변경하거나 생성하는 데 사용되지 않으며, 오직 데이터를 읽는 데만 사용된다.
`POST`
주로 서버에 리소스를 추가할 때 사용한다. (Create)
클라이언트가 서버의 리소스를 생성하려고 할 때 사용한다.
POST 요청은 서버에게 데이터를 보내고, 그 데이터를 사용해서 새로운 리소스를 생성하거나 기존 리소스를 업데이트하라는 요청을 한다.
`HEAD`
GET 요청과 거의 유사하지만, 실제 본문의 내용 없이 HTTP 헤더 정보만을 반환한다. (No Body)
response에 Body가 없다.
리소스를 가져오지 않고도 그에 대한 정보를 얻을 수 있어 효율적이다.
`PUT`
특정 URL에 대응하는 리소스의 전체 내용을 갱신하는 데 사용한다. (Update)
만약 해당 URL에 리소스가 이미 존재한다면 PUT 요청은 그 리소스를 새로운 것으로 대체하고, 만약 리소스가 존재하지 않는다면 새로운 리소스를 생성한다.
`DELETE`
특정 리소스를 제거하는 데 사용된다.
DELETE 요청은 성공했을 때 보통 응답 본문에 데이터를 포함하지 않는다.
`PATCH`
리소스의 부분적인 변경을 적용하는 데 사용된다.
PATCH 요청은 일부만 변경하기 때문에 PUT 요청보다 더 효율적일 수 있다.
`OPTIONS`
리소스가 지원하는 메서드의 종류를 확인하는 데 사용된다.
OPTIONS 요청은 "Allow"라는 헤더와 함께 해당 리소스에서 사용 가능한 HTTP 메서드 목록을 반환한다.
`TRACE`
주로 진단 목적으로 사용된다.
TRACE 요청은 클라이언트에서 서버로 전송되며, 이 과정에서 어떤 변경이나 추가가 이루어지는지를 확인하는데 사용될 수 있다. TRACE 요청이 서버에 도달하면, 서버는 요청을 그대로 응답 본문으로 반환한다.
이를 통해 클라이언트는 요청이 어떻게 처리되었는지 확인할 수 있다.
`CONNECT`
주로 네트워크 터널을 만드는 데 사용된다. 가장 흔한 예는 HTTPS 통신을 위한 SSL 터널이다.
클라이언트가 CONNECT 메서드를 사용하면, 웹 서버는 목적지 서버와의 네트워크 연결을 설정하고, 클라이언트와 목적지 서버 사이에서 데이터를 릴레이하게 된다.
HTTP Status Code
HTTP 상태 코드(HTTP Status Code)는 HTTP 응답에서 서버가 클라이언트에게 요청 처리의 결과를 전달하는 방법이다. 이 코드는 세 자리 숫자로 구성되며, 각각이 의미하는 바는 다음과 같다.
1xx (Informational): 요청이 수신되었고 프로세스가 계속되는 중임을 나타낸다.
2xx (Successful): 요청이 성공적으로 수신, 이해, 그리고 수용되었음을 나타낸다. 가장 일반적인 코드는 `200 OK`로, 요청이 성공적으로 처리되었음을 나타낸다.
3xx (Redirection): 클라이언트는 요청을 완료하기 위해 추가 동작을 취해야 함을 나타낸다. 예를 들어, `301 Moved Permanently`는 요청한 리소스의 URI가 변경되었음을 나타내며, 새로운 URI를 클라이언트에게 제공한다.
4xx (Client Error): 클라이언트의 요청이 잘못되었거나 완료할 수 없음을 나타낸다. 가장 흔히 볼 수 있는 코드는 `404 Not Found`로, 요청한 리소스를 서버에서 찾을 수 없을 때 반환된다.
5xx (Server Error): 서버가 유효한 요청을 처리하는 데 실패했음을 나타낸다. `500 Internal Server Error`는 서버에 문제가 있음을 나타내는 가장 일반적인 코드이다.
Reference
https://incheol-jung.gitbook.io/docs/q-and-a/computer-science/http-method
https://velog.io/@ellyheetov/REST-API
https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
https://medium.com/@lyhlg0201/http-method-d561b77df7
'CS 지식' 카테고리의 다른 글
[CS 지식8.] 프로세스(Process)와 스레드(Thread)란? (1) | 2023.12.27 |
---|---|
[CS 지식7.] Kubernetes 구성요소와 Pod 생성 방식이란? (2) | 2023.12.18 |
[CS 지식5.] 가상화란? (2) | 2023.03.17 |
[CS 지식4.] OSI 7계층 & TCP/IP 4계층이란? (0) | 2023.03.07 |
[CS 지식3.] HTTP / HTTPS 란? (0) | 2023.03.07 |