get, post 차이

HTTP 메소드중에 가장 많이는 방식은 get과 post일듯 하다
이둘은 비교도 참 많이 당한다.

대강 살펴보면,
get은 url이 보이고, post는 숨기는 방식
민간함데이터를 전달할 시에는
보안상 post방식이 좀더 현명한 선택인듯하다.

여기 까지가
깊게 생각안해봤던 내가 할 수 있는 대답.. ㅎ

그래서 오늘은
조금 더 살짝 들어가서
몇가지 더 차이점을 정리하려고 한다.
다행히 w3schools  정리가 되어있었다.

들여다보면 우선,
get방식은 url에 파라미터가 보인다.
이로인해 다음과 같은 결과가 초래할수 있다.

1. 브라우저캐싱
2. 즐겨찾기에추가
3. 브라우저히스토리에 저장
4. 글자길이제한(url 최대길이 2048 char)

url로 전달하는것과 form을 만들어서 전달하는것 역시 차이가있다.

1. post방식은 form을 binary 형태로 전달 한다.
2. url은 application/x-www-form-urlencoded 타입에 제한되지만 post는 파일전송을 위한 multipart/form-data 도 제공한다.
3. url은 ascii 방식, post는 바이너리 방식
4. post는 body태그안에 form을 만들어야 하므로 url을 직접던지는 방식보다 조금 느릴 수 있다.

결론적으로 암호와 같은 민감한 정보들은 되도록이면 post방식으로해야하고,
트래픽이 엄청많은 곳에서 단순정보조회같은것들은 get방식으로하면 되지싶다.


Compare GET vs. POST

The following table compares the two HTTP methods: GET and POST.
GETPOST
BACK button/ReloadHarmlessData will be re-submitted (the browser should alert the user that the data are about to be re-submitted)
BookmarkedCan be bookmarkedCannot be bookmarked
CachedCan be cachedNot cached
Encoding typeapplication/x-www-form-urlencodedapplication/x-www-form-urlencoded or multipart/form-data. Use multipart encoding for binary data
HistoryParameters remain in browser historyParameters are not saved in browser history
Restrictions on data lengthYes, when sending data, the GET method adds the data to the URL; and the length of a URL is limited (maximum URL length is 2048 characters)No restrictions
Restrictions on data typeOnly ASCII characters allowedNo restrictions. Binary data is also allowed
SecurityGET is less secure compared to POST because data sent is part of the URL

Never use GET when sending passwords or other sensitive information!
POST is a little safer than GET because the parameters are not stored in browser history or in web server logs
VisibilityData is visible to everyone in the URLData is not displayed in the URL


댓글

이 블로그의 인기 게시물

[spring] log4j 설정 및 사용법

[linux] 백그라운드 작업 nohup [xxx.sh] &

[spring] 인터셉터 와 필터