웹 개발/웹&프로그래밍

HTTP 요청 메소드 정리

희랍인 조르바 2018. 6. 28. 22:21


보통 우리가 개발하면서 사용하는 HTTP 요청 메소드는 2가지 GET, POST 방식이 있다.


웹 개발자로서 잘 사용하지 않아도 어떤 것인지는 알아야 되지 않을까 하는 마음에 정리한다.


1. HTTP 요청 메소드란?


클라이언트가 웹 서버에게 사용자 요청의 목적/종류를 알리는 수단이다.


최초의 HTTP에서는 GET 메소드 하나밖에 존재하지 않았고, 당시 서버로부터의 응답은


무조건 HTML 문서였다.


2. 요청 종류


 1) HEAD : 메세지 헤더(문서 정보) 취득


     GET과 유사한 방식이지만, 실제 문서를 요청하는 것이 아니라, 문서 정보를 요청하는 것이다.


     이에 따라 HTTP 응답 메세지에 본문(Body)없이 HTTP 헤더 정보만을 보냄.


사진 출처: 클릭 


 2) GET: URI 형식으로 웹 서버측 리소스(데이터)를 요청


     파라미터를 넘겨서 해당하는 본문형식을 받는다.


사진 출처: 클릭

     위 그림처럼 URI형식으로 서버에 요청해 데이터를 받는다. 

   

     그러므로 본인이 서버에 파라미터를 날릴 때 url에 찍히는 것이 보기 싫다면 POST로 요청해야한다.


 3) POST: 내용 전송(파일 전송 가능)


     클라이언트에서 서버로 전달하고자하는 정보를 서버로 보냄




 4) PUT: 내용 갱신 위주(파일 전송 가능)


     POST처럼 정보를 서버로 제출하는 것이나 보통 갱신 위주다.



 5) DELETE: 파일 삭제


     웹 리소스를 제거할 때 사용한다. 하지만, DELETE의 경우 서버에서 클라이언트의 요청을 무시 가능하기 때문에


     실제로 삭제되지 않았지만, 클라이언트는 파일이 삭제 되었다고 생각할 수 있다.


     

 6) OPTIONS: 웹 서버측 제공 메소드에 대한 질의


     가능한 메소드 옵션에 대한 질의이다.


     이 경우 응답 메세지에 HTTP 헤더 항목 중 'Allow: GET, POST, HEAD'처럼 보내게 된다.



 7) TRACE: 요청 리소스가 수신되는 경로를 보여줌.

     

     자기 앞으로 요청 메세지를 반환(루프백) 시험



 8) CONNECT:  프록시 서버와 같은 중간 서버 경유


     이 메소드는 요청한 리소스에 대해 양방향 연결을 시작하는 메소드다.


     CONNECT 메소드는 SSL(HTTPS)를 사용하는 웹 사이트 접속하는데 사용할 수 있다. 


     클라이언트는 원하는 목적지와 TCP연결을 HTTP 프록시 서버에 요청한다. 그러면 서버는 클라이언트 대신하여


     연결의 생성을 진행한다. 한번 서버에 의해 연결이 수립되면, 프록시 서버는 클라이언트에 오고가는


     TCP 스트림을 계속해서 프록시한다.




전체적으로, 개발에서 GET, POST 방식 이외에는 보안이 취약해서 사용을 권장하지 않는다는 글들이 많았다.




참고 및 출처:


1. 메소드 내용: http://www.ktword.co.kr/abbr_view.php?m_temp1=3791


2. 메소드 내용: 위키피디아


3. 메소드 내용:https://developer.mozilla.org/ko/docs/Web/HTTP/Methods/CONNECT


3. GET,POST 이외에 보안이 취약하다는 글: http://coashanee5.blogspot.com/2017/03/http.html?m=1