- 공통점
Client와 Server 간에서 요청과 응답을 주고받는 메소드이다. HTTP 프로토콜을 이용해 웹페이지에서 서버로 정보를 보낼때 사용할 수 있다. 로그인을 할때 계정 ID와 PW를 보낼때가 그 중 하나이다.
- GET
요청을 보낼 때 URL 부분의 뒤에 정보를 담는다.
www.example.com?ID=data1&PW=data2
위 예시에서 '?'를 이용해 URL의 끝을 알리고 key로 ID와 PW를 사용하고, value로 data1과 data2를 사용한다. 중간에 '&'를 이용해서 구분을 해준다.
필요한 정보를 URL에 넣어서 보내기 때문에 BODY 영역에는 데이터가 담기지 않고, 보낼 수 있는 데이터의 길이가 제한(최대 2048자)되어있다.
캐싱이 가능하기 때문에 접근했던 정보에 다시 접근할 경우 좀 더 빠른 속도로 접근이 가능하다.
하지만, URL에 정보가 뻔히 노출되기때문에 보안에 주의해야한다.
- POST
URL에 데이터를 두는 GET 방식과는 다르게 BODY 영역에 데이터를 담아서 보낸다.
BODY 영역을 이용하기 때문에 보내는 데이터의 길이 제한같은것이 없다.
하지만 BODY 영역의 데이터에 대한 타입을 헤더에 담아서 보내주어야한다.
캐싱이 안되기 때문에 GET 방식보다는 느릴수 있지만, 데이터가 외부에 노출되어있지 않기때문에 조금 더 보안에 유리하다고 할수 있다. 하지만, SSL(Secure Sockets Layer)을 사용하지 않는다면 GET과 다를게 없다.
마지막으로, POST는 서버의 상태나 데이터를 변경시킬때 사용할 수 있다.
즉, GET은 DB에서 SELECT를 생각하면 되고 POST는 UPDATE를 생각하면 된다. GET은 데이터를 변경하지 않고 가져오고 POST는 변경이 가능하다. 그렇다면 사용하는 곳은 단순히 데이터를 가져오기만 해야할 때는 GET, 결과값이 바껴야할 때는 POST가 적합하고, 속도 측면에서는 GET이 좋고, 보안 측면에서는 POST가 좋다는것을 알 수 있다.
이 외에도 HTTP 통신 방법으로는 PUT과 DELETE도 있다.