웹개발

[Day1] HTTP request method

rangrangerang 2019. 7. 1. 17:56
  1. HTTP의 동작과정

        1. 요청 메시지

    => 요청문의 GET부분 : 요청 메서드(GET,POST,HEAD 등)

     

          2. 응답 메시지

             => 상태문 : HTTP 버전 , 200 : 상태코드(200OK는 클라이언트의 요청이 성공적으로 수행되었음을 의미)

             => 바디의 내용은 클라이언트가 요청한 index.php 파일의 내요이 포함
  • HTTP method : 서버에 요청을 보내는 방법

  • HTTP request method 종류

HTTP Request Method 설명
GET : 데이터 획득
  • 웹 서버에 데이터 전송을 요청
  • 요청한 데이터를 서버로부터 가져오기만 함(서버의 상태 변경 X)
  • URL에 쿼리 문자열을 이어붙이는 방식
HEAD : 헤더 획득
  • URI에 해당하는 정보의 전송을 요청, GET과는 다르게 Meta 정보만을 요청
  • HTTP응답 메세지에 본문(Body) 없이  HTTP 헤더 정보만을 보냄
POST : 데이터 전송
  • 요청된 자원을 생성
  • 요청 데이터를 HTTP바디에 담아 웹서버로 전송
PUT : 데이터 갱신
  • 자료를 전송하여 해당 URI에 자료를 저장
  • POST처럼 정보를 서버로 제출하는 것이지만 갱신 위주임
DELETE : 데이터 삭제
  • 해당 URI의 자원/정보를 삭제
OPTIONS : 웹서버측 제공 메서드에 대한 질의
  • 웹서버에서 지원되는 메서드의 종류를 확인할 경우 사용.
TRACE : 거의 사용x
  • 이전까지 요청한 정보들의 목록을 요청
CONNECT : 거의 사용X
  • 프락시 서버와 같은 중간 서버 경유

 

3. 메서드 비교

  • GET vs POST
GET POST
  • 데이터를 얻기 위한 요청(CRUD의 Read)
  • 멱등적(idempotent) : 여러번 반복 요청해도 동일한 응답을 받을 것으로 기대
  • 데이터를 보내기 위한 요청(CRUD의 Create)
  • 비멱등적 : 요청할 때마다 서버의 상태를 변경시킬 수 있음 => 돌아오는 결과가 매번 달라질 수 있음

 

  • POST vs PUT
POST PUT
  • 요청을 통해 전달되는 표현이 웹 서버 쪽에 있는 타겟 리소스 자체로서 처리
  • 비멱등적(동일한 요청을 할 때마다 웹서버에 새로운 리소스 생성)
  • 클라이언트가 이미 리소스의 위치를 알지 못함
  • 요청을 통해 전달되는 표현이 타겟 리소스의 상태를 갱신하려는 의도를 가짐(CRUD의 Update)
  • 멱등적(동일한 요청을 반복해도 타겟 리소스의 상태를 갱신만 함. 새로운 리소스 생성 X)
  • 클라이언트가 이미 리소스의 위치를 알고 있음

 

 

 

 

 

 

 

[출처]
https://oaksong.github.io/2018/03/16/http-request-methods/
http://www.ktword.co.kr/abbr_view.php?nav=2&id=902&m_temp1=3791
https://pro-self-studier.tistory.com/126
https://terms.naver.com/entry.nhn?docId=2271987&cid=51207&categoryId=51207&expCategoryId=51207
https://javaplant.tistory.com/18