[네트워크] HTTP의 Method 방식 비교

Jung Wish·2020년 10월 5일
0

네트워크

목록 보기
1/7
post-thumbnail

HTTP의 Method 방식 비교

🐰 HTTP(Hyper Text Transfer Protocol)란,

  • 클라이언트-서버 프로토콜로 HTML문서와 같은 리소스(데이터)를 가져올 수 있도록 해주는 역할을 합니다.
    • 클라이언트-서버 프로토콜이란 (보통 웹브라우저인) 수신자 측에 의해 요청이 초기화되는 프로토콜을 의미합니다.
  • TCP/IPApplication 최상위 계층에서 네트워크 서비스 자체를 제공합니다.
  • 웰 노운 포트(well-known)인 80번 포트를 사용하여 통신합니다.
    • 웰 노운 포트(well-known)는 65,536개의 포트 번호 중 1~1023번 포트를 말합니다. (1024~49151 - 등록된 포트, 49152~65535 : 송신측 어플리케이션이 임의로 선택 가능한 포트)
  • 첫번째 표준은 HTTP/1.1이고 이후로 HTTP/2 및 HTTP/3가 등장하였습니다.

🐰🐰 HTTP Method

클라이언트가 서버로 보내는 요청의 방법을 나타내며 주어진 리소스에 수행하길 원하는 행동을 나타냅니다.

Method 종류

  • GET : 서버에게 조회할 리소스를 요청한다. (READ, 조회)
  • POST : 서버에게 본문(body)에 생성할 데이터를 삽입하여 전송한다. (CREATE, 생성)
  • PUT : 서버에게 본문에 수정할 데이터를 삽입하여 전송한다. (UPDATE, 수정)
  • DELETE : 서버에게 삭제할 리소스를 요청한다. (DELETE, 삭제)
  • PATCH : PUT과 비슷하지만 일부만 수정한다는 점에서 다르다.

그외에도 HEAD, CONNECT, OPTION 이 있습니다.

이 중 GET, POST 메소드에 대해 더 알아보겠습니다.

GET 방식 vs POST 방식

  • GET 방식
    • 서버에서 SELECT, READ 역할을 합니다. 그러므로 서버의 값이나 상태를 변경하기 않습니다.
    • GET 요청은 요청 내용을 Body에 담지 않고, HTTP request messageHeader 부분 url에 쿼리스트링으로 전달합니다.
    • url의 길이의 제한이 있기 때문에, GET 요청의 길이에도 한계가 존재합니다.
    • GET 방식은 url에 정보가 노출되기 때문에, password와 같은 정보는 GET 방식으로 서버에 전달해서는 안됩니다.
    • GET 방식은 Cacheing이 가능해, 한 번 정적 문서들을 요청하면 동일한 요청이 들어왔을 때 서버에 추가적으로 요청하지 않고 Caching 해놓은 것을 사용합니다. 따라서, 동일한 요청에 매번 같은 응답을 보냅니다.
      • 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말합니다. => 따라서 GET은 멱등성을 가집니다.

  • POST 방식
    • 서버에서 CREATE 역할을 수행합니다. 보통 서버의 상태를 변경하거나 값을 추가하고자 할때 사용합니다.
    • POST 요청은 HTTP request messageBody 부분에 전달되기 때문에 길이 제한 없이 정보를 보낼 수 있습니다.
    • 보안면에서 GET보다는 낫지만, 개발자 도구에 의해서 노출되기 쉽기 때문에 암호화해서 전송해야 합니다.
    • POST 방식은 멱등성을 가지지 않기 때문에, 서버에 요청할때마다 응답이 항상 다를 수 있습니다.

Reference

profile
Frontend Developer, 올라운더가 되고싶은 잡부 개발자, ISTP, 겉촉속바 인간, 블로그 주제 찾아다니는 사람

0개의 댓글