HTTP Method 는 요청( Request ) 시에 어떠한 수행이 필요한지 Request에 담아 보낼 수 있는 집합을 말합니다.

 

Method 에는 

HEAD, GET, POST, PUT, DELETE, PATCH, CONNECT, TRACE, OPTIONS 가 있습니다.

 

HEAD

동작자체는 GET과 같아 보이지만 Response 로 헤더만을 보내줍니다.

HEAD로는 Resource를 받지 않더라도 StatusCode 를 통해 데이터의 유무를 확인 할 수 있고

헤더로 Resource가 변경되었는지 알 수 있습니다.

HTTP/1.1 의 규약을 준수하려면 HEAD Method가 필수로 구현되어야합니다.

 

GET

서버에서 후처리가 필요하지않고 단순하게 Resource 만을 요청할때 사용됩니다.

GET으로 요청할때는 URL 뒤에 파라미터를 QueryString으로 작성하여 String의 형태로 전달해야합니다.

ex) http://1.1.1.1:80/getData?id=xxxx&pw=xxxx

QueryString으로 보내는 만큼 URL에 정보가 노출되므로 

보안의 위험이 상대적으로 큽니다.

 

POST

서버에서 DB에 대한 후처리(새로운 데이터 저장)이 필요하거나 정보를 재가공해 Response 해주는 경우에 사용됩니다.

GET에서는 QueryString으로 보내던 파라미터를 POST 에서는 BODY에 담아서 보냅니다.

그러므로 GET보다는 상대적으로 좀 더 안전합니다.

보낼 데이터의 용량도 URL뒤에 String방식으로 보내는 GET은 길이제한이있어 많은 양의 데이터를 보내기 힘들고

POST는 GET보다는 많은 양의 데이터를 보낼 수 있습니다( 물론 POST에도 용량의 제한은 있습니다. )

POST는 SQL Query에서 INSERT와 대응되는 메소드입니다.

 

PUT

전송구조는 POST와 유사하고 서버에서 DB에 들어있는 정보를 수정하기 위해 사용합니다.

DELETE와는 반대되는 메소드 입니다.

SQL Query 에서 UPDATE 와 대응되는 메소드입니다.

 

PATCH

PUT과 유사하게 UPDATE 와 대응되는 메소드이기도 하고

DB에 들어있는 정보를 수정하기 위해 사용하지만 PUT과는 의미를 다르게 사용합니다.

PUT은 정보의 전체를 갱신 및 저장하는 의미로 쓰이지만

PATCH는 해당 정보의 일부를 교체하는 의미로 사용합니다.

 

DELETE

전송구조는 POST와 유사하고 서버에서 DB에 있는 정보를 삭제하기 위해 사용합니다.

안전성의 문제가 있을 수 있으므로 클라이언트에서 보내는 DELETE 메소드는 서버에서 거부 할 수 있습니다.

PUT과는 반대되는 메소드 입니다.

 

CONNECT

요청한 URL에 대해 양방향 연결을 시작하는 메소드입니다.

클라이언트가 프록시를 통해 서버와 SSL 통신을 하고자 할 때 사용됩니다.

 

TRACE

클라이언트와 서버간의 통신관리 및 디버깅의 목적으로 만들어진 메소드입니다.

TRACE 를 지원하는 서버가 Request를 받게 되면 서버는 Request받은 메시지 전체를

Response Body에 담아 클라이언트에게 Response 를 보내줍니다.

TRACE Method는 Request를 브라우저에 표시하는 것이 가능하다는 특징이 있는데

그 특징을 이용하여 TRACE를 이용한 크로스 도메인 공격을 할 수 있습니다.

이러한 공격을 크로스 사이트 트레이싱( Cross-Site Tracing )이나 XST라고 부릅니다.

 

OPTIONS

클라이언트에서 서버로 통신을 위해 접근하고자 하는 URL에 대해

서버에서 지원하고 있는 메소드의 종류를 확인 할때 사용합니다.

 

 

'Http' 카테고리의 다른 글

What is HTTP  (0) 2019.04.05

HTTP( Hyper Text Transfer Protocol )

서버가 HTML로 된 문서를 유저에게 보여주기 위함을 목적으로 한 프로토콜.

일반적인 인터넷 통신에 사용되는 프로토콜입니다.

HTML을 보여주기 위함이지만 HTML뿐만 아니라 각종 이미지, 비디오, 데이터 등의 전송도 가능합니다.

동작은 간단하게 접근하려는 URL로 요청(Request)를 보내고 응답(Response)를 받는 형태입니다.

 

큰 범위의 특징으로 HTTP는 Connectionless 하고 Stateless 합니다.

Connectionless 는 웹(클라이언트)와 서버가 연결 되면 요청(Request)를 하고 응답(Response)를 보낸 뒤엔 접속을 해제합니다.

간단하게 클라이언트와 서버가 항상 연결이 되어 있지는 않다는 뜻입니다. 

위와 같은 이유로 상대와 연결이 끊기고 새롭게 연결되는 과정을 반복하기때문에

클라이언트와 서버는 연결에 대한 정보를 따로 저장할 쿠키나 세션같은 방법이 필요합니다.

 

Stateless는 통신이 끝나고 연결이 해제될때 당시에 상태가 저장이 되지않으므로 Stateless하다고 합니다.

간단하게 어떠한 페이지에 로그인할때 세션이나 쿠키에 따로 저장해두지 않으면 로그인을 했던 정보가 바로 사라지게 됩니다.

 

이러한 특징으로 인해 실시간 데이터 변경 및 갱신의 상황에서는 단점으로 작용합니다.

실시간으로 통신하여 데이터를 갱신해야하는 게임이나, 주식 등의 데이터를 표현하기 위해서

일반적으로 Socket이라는 인터페이스를 사용하게 됩니다.

'Http' 카테고리의 다른 글

What is HTTP Method  (0) 2019.04.05

+ Recent posts