일단은 프로그래머 나부랭이

get/post 데이터 전송 방식의 차이 본문

Java Script (+Jquery)

get/post 데이터 전송 방식의 차이

하필이면 도대체가 2018. 3. 8. 17:25

웹에서 데이터를 전송할 때는 get과 post 두가지 방법으로 나누어서 전송을 할수 있다.

우선 두가지를 비교하자면

get : 전송 가능 글자수에 제한이 있다, 값을 암호화하지 않기 때문에 보안에 취약하다.
post : 데이터양에 제한이 없다, 값을 암호화해서 전송하기 때문에 보안성이 더욱 우수하다.

물론 책에는 get이 빠르고, post가 느리다는 말이 각각의 장단점에 기재되어 있지만, 현대에는 인터넷이 워낙 빨라서 별로 체감되지 않을 것이다.

얼핏보면 post 최고인것 같지만, 필요에 따라 get방식도 당연히 사용된다.
그리고 여기까지는 보통 책이 알려주는 내용이다.

get방식은 한가지 더 불편함(?)이 있는데, 바로 문자열에 &나 +를 포함할 수 없다는 것이다.

'&'의 경우 parameter구분기호니까 그렇다치는데 '+'는 의외로 모르고 넘어갈 수 있다.
+의 경우, 필자도 정확한 이유는 모르나, localhost를 벗어날 때, 문자 +를 공백으로 처리해서 내보낸다.

때문에 가끔씩 값을 전송했는데 이상한 값 전송되는 경우가 있다.
(local을 벗어나지 않으면, 위와 같은 문제가 없기 때문에, 혼자 테스트하다가 놓치는 경우가 있다.)

이 경우에는 크게 2가지 해결 방법이 있다.

1. get방식을 post방식으로 바꾸는 것
2. 전송하기 전의 데이터를 encodeURIComponent함수를 이용하여 인코딩을 해준 후, 전송하는 것.




Comments