우선, 웹 브라우저에서 웹 서버로 데이터를 보내는 HTTP메소드에서 자주 사용되는것이 바로 GET과 POST입니다.
● GET과 POST의 차이점
- GET은 요청을 URL에 붙이므로 북마크가 가능하다.
- GET으로 송신할 수 있는 데이터 크기에는 제한이 있다.
- GET 응답은 캐시되지만 POST응답은 캐시되지 않는다.
1. GET은 요청을 URL에 붙이므로 북마크가 가능하다.
예를 들어, https://choseongho93.tistory.com/?sound=20&count=3 라는
URL로 접속할때 ?뒤에 sound가 키(key)가 되고, = 뒤에는 값(value)이 됩니다.
즉, sound은 20이라는 값을 가지게되고, count는 3이라는 값을 가지게됩니다.
이렇게 URL 형식으로 인코딩한 쿼리 정보를 만들어 송신합니다.
URL 주소와 물음표(?) 뒤에 붙은 키와 값의 쌍이 연속된 부분이 쿼리 문자열입니다. 여러개의 파라미터가 있을 때는
앰퍼샌드(&)로 연결합니다.
이 요청 내용은 웹 브라우저의 주소창에 표시되므로 북마크가 가능합니다.
편리할 수 있지만, 보안면에서 취약하므로 사용하지 않는것을 권합니다.
( 간단한 데이터를 넘길때는 편리합니다. )
반면에, POST는 폼의 파라미터를 URL에 포함하는 것이 아니라 요청한 본문에 포함합니다.
GET처럼 요청 내용을 쉽게 볼 수 없고 북마크로 할 수도 없기에 보안에는 GET보다 낫습니다.
( 주소 창에 표시 되지않는 다고 해서 POST가 무조건 안전한것은 아닙니다. 기밀 유지를 위해서는 SSL등의 암호화 통신을 선호합니다. )
2. GET은 송신할 수 있는 데이터 크기에는 제한이 있다.
POST 데이터 크기는 무제한인 반면 GET의 쿼리 정보는 제한이 있습니다.
사용할 웹 브라우저와 서버에 따라 데이터 크기가 다르지만, URL의 합께 크기에는 상한이 있습니다.
데이터 크기를 제한하지 않는 실행 환경이라 해도 너무 긴 URL은 동작을 느려지게 합니다.
3. GET은 응답은 캐시되지만 POST응답은 캐시되지 않는다.
같은 내용의 GET요청은 매회 같은 결과를 가져오는 것이 바로 GET 요청에 대한 응답이 캐시되기 때문입ㄴ다.
즉, 내용이 바뀌지 않는 응답을 얻으려는 요청에 GET은 적합합니다.
GET으로 매번 최신의 응답을 얻고자 할 때는 파라미터에 시각을 붙여 매회 요청하는 변경 기술을 사용할 수 있습니다.
POST는 요청에 대한 응답은 캐시되지 않기에 게시판, 쇼핑 카트의 내용을 표시할때는 POST를 사용합니다.
데이터베이스 갱싱에는 GET을 사용하면 안됩니다.
* 도움이 될만한 블로그
https://choseongho93.tistory.com/166 (폼 입력 처리의 기본 ( GET, POST로 송수신하기 ))
'Dev. Etc > knowledge' 카테고리의 다른 글
스냅샷(Snapshot) 개념 (0) | 2019.11.24 |
---|---|
데이터 백업(Data Backup) 개념 (0) | 2019.11.23 |
스토리지(Storage) 개념 (0) | 2019.11.22 |
[이 웹 사이트의 보안인증서에 문제가 있습니다.] 메세지 오류 해결 (0) | 2019.11.21 |
HTTP의 기초 지식 ( 요청 & 응답 ) (0) | 2019.11.16 |
[Regex]정규표현식 기초 ( 정의 및 문자별 의미 ) / 자주 사용하는 정규표현식 (0) | 2019.10.16 |
Http와 Https은 무엇이 다른가? (차이점) (0) | 2019.06.22 |
TCP와 UDP의 개념과 차이점 & 특징 (0) | 2019.06.22 |