○ GET 방식(요청)
GET은 지정된 리소스에서 데이터를 요청하는 데 사용된다.
예를 들어 게시판의 글을 조회할 때 쓸 수 있다.
쿼리 문자열(이름/값 쌍)은 GET 요청의 URL로 전송된다.
URL 뒤에 "?" 마크를 통해 URL의 끝을 알리며, 데이터 표현의 시작점을 알린다.
URL에 붙이므로, HTTP패킷의 해더에 포함되여 서버에 요청한다.
그래서 GET 방식은 본문(Body)이 빈상태로 보내진다.
예시)
/test/demo_form.php?name1=value1&name2=value2
GET 요청 특징
- GET 요청은 캐시가 가능하다.
- GET 요청은 브라우저 기록에 남아 있다.
- GET 요청을 북마크할 수 있다.
- GET 요청은 민감한 데이터를 처리할 때 사용해서는 안된다.
(GET요청은 URL에 파라미터가 노출되어 버리기 때문에 공격의 대상이 될 수 있다.)
- GET 요청에는 길이 제한이 있다.
- GET 요청은 데이터를 요청하는 데만 사용된다.(수정 아님).
○ POST 방식(요청)
POST는 리소스를 생성/업데이트하기 위해 서버에 데이터를 보내는 데 사용된다.
POST를 통해 서버로 전송된 데이터는 HTTP 요청의 요청 본문(Body)에 저장된다.
POST /test/demo_form.php HTTP/1.1
Host: w3schools.com
name1=value1&name2=value2
Post 요청 특징
- POST 요청은 캐시되지 않는다.
- POST 요청은 브라우저 기록에 남아 있지 않는다.
- POST 요청은 북마크할 수 없다.
- POST 요청에는 데이터 길이에 대한 제한이 없다.
○ GET, POST 방식 차이
1. 사용목적 : GET은 서버의 리소스에서 데이터를 요청할 때, POST는 서버의 리소스를 새로 생성하거나 업데이트할 때 사용한다. DB로 따지면 GET은 SELECT 에 가깝고, POST는 Create 에 가깝다고 볼 수 있다.
2. 요청에 본문(body) 유무 : GET 은 URL 파라미터에 요청하는 데이터를 담아 보내기 때문에 HTTP 메시지에 body가 없다. POST 는 body 에 데이터를 담아 보내기 때문에 당연히 HTTP 메시지에 body가 존재한다.
3. 멱등성 (idempotent) : GET 요청은 멱등이며, POST는 멱등이 아니다. 멱등의 사전적 정의는 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미한다. GET은 리소스를 조회한다는 점에서 여러 번 요청하더라도 응답이 똑같을 것 이다. 반대로 POST는 리소스를 새로 생성하거나 업데이트할 때 사용되기 때문에 멱등이 아니라고 볼 수 있다. (POST 요청이 발생하면 서버가 변경될 수 있다.)
참고 및 출처 : https://www.w3schools.com/tags/ref_httpmethods.asp
'개념 창고 > NetWork' 카테고리의 다른 글
HTTP 오류 메시지(상태 메시지) (0) | 2023.01.10 |
---|