10.Get 방식과 Post 방식
get 방식은 어떠한 정보를 가져와서 조회하기 위해서 사용되는 method(방식)이다.
post 방식은 데이터를 서버로 제출하여 추가 또는 수정하기 위해서 사용하는 method(방식)이다.
get 방식은 게시글, 목록 조회 등 간단한 데이터 요청할 때 적합하고,
post 방식은 게시글을 수정, 추가 하는 작업을 할 때 적합하다.
get 방식의 특징은
1. URL에 데이터를 포함시켜서 요청한다. 그렇기 때문에 상대적으로 보안에 취약하다.
2. 브라우저 히스토리에 기록이 남는다.
3. 캐싱이 가능하다.
캐싱은 한번 접근 후 다시 요청할 때 빠르게 접근하기 위해서 레지스터에 데이터를 저장시켜 놓는 것이다.
4. 데이터를 요청할 때만 사용된다.
5. 요청에 길이 제한이 있다. (브라우저 마다 제한이 다르다.)
6. 데이터를 header(헤더)에 포함하여 전송한다.
post 방식은 데이터를 서버로 제출하여 추가 또는 수정하기 위해서 사용하는 방식이다.
post 방식의 특징은
1.보안성이 좋다. 데이터가 URL에 붙어서 서버로 보내는 것이 아닌 body에 담아서 전송한다.
2. post 요청은 캐싱되지 않는다.
3. 브라우저 히스토리에 남지 않는다.
4. 데이터 길이에 제한이 없다.
get 방식과 post 방식의 차이점
방식 | get | post |
데이터가 담기는 위치 | header | body |
URL에 데이터 노출 여부 | o | x |
캐싱 가능 여부 | o | x |
데이터 길이 제한 | o | x |
브라우저 기록 | o | x |
------------------------------------------------------------------------------------
get 방식으로 했을 때 주소에 id 와 password가 노출이 된다고 했었는데
이런 식으로 ?뒤에 id와 password가 주소창에 보이게 되는 것이다...!
이렇게 get 방식으로 제출된 주소창에 포함된 파라미터로 데이터를 가져오게 되는 것이기 때문에
보안에 신경써야한다.
다음은 post 방식으로 했을 때의 주소는
이렇게 나온다
물론 직접 만든 html 파일이라 필자의 파일 경로가 보일 뿐이지만 저런 식으로 파라미터가 포함되지 않는다)