[ HTTP ] 2. HTTP method

angie·2023년 1월 15일
0

FE 관련 지식 쌓기

목록 보기
2/7

HTTP Method의 종류

  1. GET
  2. POST
  3. PUT
  4. HEAD
  5. DELETE
  6. PATCH
  7. OPTIONS
  8. CONNECT
  9. TRACE

GET과 POST가 가장 많이 쓰인다.

1. GET

  • 서버에 데이터를 요청하는 데 사용된다.
  • 쿼리 스트링(이름, 값의 쌍)은 URL로 전송된다.
/test/demo_form.php?name1=value1&name2=value2

GET의 특징

  1. 캐싱 가능
    • 정적 컨텐츠는 요청하고 나면 브라우저에서 요청을 캐시해두고, 동일한 요청이 발생할 때 캐시된 데이터를 사용한다.
  2. 북마크가 가능
  3. 보안에 취약
    • URL에 모든 값이 노출되기 때문
  4. 길이 제한(255자)가 있다.

2. POST

  • 서버에 데이터를 송신해 리소스를 작성 혹은 갱신하기 위해 사용된다.
  • 서버에 송신되는 데이터는 HTTP request의 request body에 저장된다.
POST /test/demo_form.php HTTP/1.1
Host: w3schools.com

name1=value1&name2=value2

POST 특징

  1. 캐싱되지 않는다.
  2. 북마크할 수 없다.
  3. 데이터 길이에 제한이 없다.

3. GET과 POST의 비교

GETPOST
캐싱 가능 여부OX
요청 결과동일(Idempotent)변동가능(Non-idempotent)
브라우저파라미터가 브라우저 히스토리에 남는다.파라미터가 브라우저 히스토리에 남지 않는다.
데이터 길이 제한URL의 길이가 최대 2048자로 제한제한없음
데이터 타입 제한ASCII 문자만 가능제한없음
보안URL에 데이터가 보내져 보안이 취약데이터가 브라우저 히스토리나 서버 로그에 남지 않아 보안이 보다 안전

4. PUT

  • 리소스를 생성/업데이트하기 위해 서버로 데이터를 전송
  • POST, PUT의 차이점은 PUT요구가 무의미함
  • 같은 PUT 요구를 여러 번 호출하면 항상 같은 결과
  • POST 요구를 반복적으로 호출하면 동일한 리소스가 여러 번 생성

5. HEAD

  • GET과 거의 동일하지만 request body가 없음
  • GET/users가 사용자 목록을 반환할 경우 HEAD/users는 동일한 요청을 하지만 사용자 목록을 반환하지 않음
  • HEAD는 GET 요청 전 GET 요청이 반환되는 내용을 확인하는 데 유용

6. DELETE

  • 지정된 리소스를 삭제

7. PATCH

  • 리소스에 부분 수정을 적용

8. OPTIONS

  • 대상 리소스에 대한 통신 옵션을 설명

9. CONNECT

  • 요청된 리소스와 쌍방향 통신을 시작하기 위해 사용

10. TRACE

  • 타깃리소스의 경로를 테스트하는 message loop-back 테스트를 실행하기 위해 사용 (디버깅에 도움)
profile
better than more

0개의 댓글