Taking baby-developer steps

[Web] HTTP 프로토콜 메서드 정리 본문

CS 지식/Web

[Web] HTTP 프로토콜 메서드 정리

Surin Lee 2023. 11. 6. 12:17

 HTTP(Hypertext Transfer Protocol)는 웹에서 정보를 주고받는 데 사용되는 프로토콜로, 다양한 메서드를 제공해 클라이언트와 서버간의 상호작용을 정의한다. HTTP 프로토콜에서 지원하는 주요 메서드는 다음과 같다.

 

  • GET / HEAD
  • POST / PUT / PATCH
  • DELETE
  • OPTIONS
  • CONNECT
  • TRACE

GET /  HEAD - 리소스 요청, 조회

 GET 메서드는 서버로부터 리소스를 요청하는 데 사용된다. 요청된 리소스는 URL에 포함된 쿼리 매개변수에 따라 반환된다. 이 메서드는 요청한 리소스를 읽기만 하고 변경하지 않는다.

 HEAD 메서드는 GET과 유사하지만, 서버는 응답으로 실제 데이터(메시지의 body부)를 반환하지 않고 헤더 정보만 반환한다. 이는 리소스의 메타데이터, 크기, 수정 날짜 등을 확인하는 데 유용하다.

 두 메서드는 기본적으로 동일한 리소스를 가져오지만, HEAD는 본문을 포함하지 않는 다는 차이가 있다.

GET 메서드가 다른 메서드들과 구분 되는 점
1. 데이터 전달 방식
 GET 메서드는 데이터를 URL의 쿼리 문자열에 포함해 서버로 전송한다. 이는 주로 URL 매개변수로 데이터를 전달하는 방식이다. 다른 메서드(POST, PUT)은 데이터를 요청 본문(Request Body)에 포함하여 전송하며, 이를 통해 더 큰 양의 데이터를 보내거나 민감한 정보를 보호하는 것과는 구별된다. 
2. 데이터 변경 없음
 GET 메서드는 서버 상태나 데이터를 변경하지 않는다. 서버에 요청을 보내고 응답을 받지만, 서버 측의 리소스를 수정하거나 업데이트하지 않는다. 이런 무변화 특성은 웹 페이지 뷰어와 같이 정보를 요청하고 표시하는 데 주로 사용된다.
3. 캐싱 가능
 GET 메서드로 요청한 리소스는 브라우저 및 중간 프록시 서버에 의해 캐싱될 수 있다. 이는 동일한 리소스에 대한 반복적인 요청을 최소화하여 네트워크 대역폭을 절약하고 성능을 향상시키는 데 도움이 된다.
4. 북마킹 및 공유 가능
 GET 요청은 URL에 모든 데이터가 노출되므로, 해당 URL을 북마크하거나 다른 사람과 공유하기 쉽다. 이는 웹 페이지의 북마크, 소셜 미디어 공유, 검색 결과 페이지 및 링크 공유에 주로 활용된다.
5. 브라우저 캐싱 및 이력
 GET 요청과 함께 보내는 데이터는 브라우저의 히스토리에 남으며, 브라우저에서 쉽게 검색 하고 다시 방문 할 수 있다.

요약하면, GET 메서드는 주로 읽기 작업 및 리소스 요청에 사용된다. 다른 메서드와 달리 데이터를 URL에 노출하고 데이터 변경을 수반하지 않으며, 캐싱 및 공유에 적합한 특징들을 가지고 있다.

POST / PUT / PATCH - 데이터 전송 (리소스 생성 및 업데이트)

 POST 메서드는 클라이언트에서 서버로 데이터를 제출하는 데 사용한다. 주로 양식 데이터를 서버로 보내는 데 사용되며, 서버는 이 데이터를 처리하고 새로운 리소스를 생성하거나 업데이트 할 수 있다.

 PUT 메서드는 클라이언트에서 서버로 데이터를 보내는데 사용한다. 요청된 위치에 리소스를 저장한다. 즉 리소스를 업데이트 하는 데 사용하며 해당 위치에 이미 리소스가 존재하면 덮어쓰기 한다.

 PATCH 메서드는 리소스의 일부를 수정하는 데 사용한다. PUT 과 달리 리소스를 교체하지 않고 일부만 변경 할 수 있다.(이어쓰기 등)

 

POST vs PUT :  모두 서버로 데이터를 보내는 데 사용한다. POST는 주로 새로운 리소스를 생성하는데 사용하고, PUT은 기존 리소스를 업데이트(덮어쓰기)하는 데 사용한다.

POST vs PATCH : PATCH는 리소스의 일부를 수정하는 데 사용하며, 업데이트 대상이 될 리소스를 명시적으로 식별 할 수 있다.

DELETE - 리소스 삭제

 DELETE 메서드는 지정된 리소스를 삭제한다. 클라이언트가 서버에서 리소스를 제거할 수 있다.

다른 메서드들은 주로 리소스를 읽거나 수정하는데 사용되는 데 비해 명백한 차이가 있다.

OPTIONS

 서버가 지원하는 메서드, 헤더 및 다른 요청 옵션을 조회한다. 클라이언트가 서버의 기능을 확인 할 수 있다.

CONNECT

웹 서버와 프록시 서버 사이의 터널을 설정하기 위해 사용한다. 주로 보안 연결을 설정하는 데 사용한다.

TRACE

요청을  디버깅하기 위해 사용된다. 클라이언트는 서버에게 요청 메시지를 다시 반환하도록 요청하고, 이를 통해 요청과 응답 사이에 어떤 변화가 있는지 확인할 수 있다.

 

 

메서드를 올바르게 사용해 원하는 동작을 수행하고, RESTful API 설계 원칙 등을 준수하여 명확하고 일관된 API를 만들어야 한다.

Comments