웹 개발을 하다 보면 서버에 요청을 보내는 HTTP Method인 GET, POST를 접하게 됩니다. 간단하게 보면 GET은 데이터를 요청할 때, POST는 데이터를 저장할 때 사용한다고 보면 되는데, 웹 개발을 하다 보면 이 두 호출 방식의 차이점에 대해 정확히 이해를 해야 할 경우가 생깁니다. 그래서 오늘은 두 호출 방식에 대한 차이를 알아보겠습니다.
01 GET 방식
GET은 데이터를 호출하는 목적으로 사용하며, URL에 파라미터를 추가하여 전송된다. 그렇기 때문에 보안에 취약하다. 보내는 길이는 한계가 있고 (약 2K가 안전) 헤더에 담아서 보내진다.
캐싱 기능이 있기 때문에 보안에 민감하지 않은 파라미터로 빠르게 조회해 오는데 유용한 방식이다. (URL만 알면 언제든지 호출할 수 있다.)
요청 형태 : www.test.com?id=Jay&status=rich&hoddy=traveling
요청 데이터 : id=Jay, status=rich, hoddy=traveling
02 POST 방식
POST는 데이터를 저장하는 목적으로 사용하며, 요청 데이터가 HTML Body에 들어가서 보내기 때문에 외부에 요청 데이터가 노출되지 않고, 보낼 수 있는 데이터의 양도 제한이 없다. (파라미터뿐만 아니라 파일도 서버로 전송할 수 있다.)
캐싱 기능은 없기 때문에 빠르고 반복적으로 호출하는 경우에는 적합하지 않을 수 있다. (예를 들면, URL만으로는 즐겨찾기에 추가할 수 없다.)
요청 형태 : www.test.com
요청 데이터 : 노출되지 않는다.
03 GET vs POST 비교
GET과 POST를 상세하게 비교해 보면 아래와 같습니다.
항목 | GET | POST |
Purpose | Read | Insert, Edit |
Request format | URL에 파라미터 추가하는 방식 | message body에 넣는 방식 (HTML) |
Request data | Header | Body |
Encoding type (enc type attribute) |
application/x-www-form-urlencoded | multipart/form-data or application/x-www-form-urlencoded |
Parameters | URL length is restricted. A safe URL length limit is often 2048 characters but varies by browser and web server. | Can send unlimited amount of parameters, including files |
Hacked | Easier to hack | More difficult to hack |
Restrictions on form data type | only ASCII characters | No restrictions. Binary data is also allowed |
Usability | should not be used when sending passwords or other sensitive information. | used when sending passwords or other sensitive information. |
Cached | GET은 idempotent하기 때문에 캐시가 된다. | POST는 idempotent하지 않기 때문에 캐시가 되지 않는다. |
'[개발] Programming > 기타 Study' 카테고리의 다른 글
웹3.0 이란? 웹2.0 와의 차이와 핵심 비전 (0) | 2023.06.15 |
---|---|
MS 인증 시험 DP-900: Microsoft Azure Data Fundamentals 비용 및 후기 (0) | 2022.03.20 |
IaaS, PaaS, SaaS 클라우드 컴퓨팅 서비스 형태 (0) | 2022.01.16 |
MS AZ-900 : Azure Fundamentals, Certificate 시험 후기, 난이도 (0) | 2021.08.17 |
댓글