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 |
---|