GET과 POST는 HTTP 프로토콜에서 서버와 클라이언트 간 통신에 활용되는 요청(Request) 메소드이다.
GET과 POST의 차이
- GET은 URL의 뒤에 ?를 붙여 전달한다. 전송량에 제한이 있고, 사용자에게 데이터가 노출됩니다.
- POST는 HTTP body에 포함하여 전달합니다. 전송량에 제한이 없고, 사용자에게 데이터가 보이지 않습니다. (암호화는 안됨)
- 둘 다 암호화가 따로 없어서 보안에는 둘 다 취약하다.
- 서버의 값이나 상태를 변경하는 경우에는 POST로, SQL 쿼리의 SELECT와 같은 단순 조회의 경우 GET을 사용
GET
- GET은 가져오는 것, 서버로부터 정보를 요청하기 위해 사용
- URL에 데이터를 포함시켜 요청한다. (기존의 URL 뒤에 ?를 붙여 구분)
- 전송하는 길이에 제한이 있다.
- URL에 데이터가 노출되어 보안에 취약하다.
- URL 형식에 맞지 않는 데이터는 인코딩(Encoding)이 반드시 필요하다.(한글이나 특수문자를 전송할 경우)
- 캐싱할 수 있다.
→ 만약 웹 페이지 게시판 수정, 삭제 기능을 GET으로 구현한다면 캐싱으로 의도치않게 글이 수정, 삭제 될 수 있다. 때문에 주로 서버에 데이터를 요청(Select)할 때 사용
ex) 게시판 게시물 조회
+ 캐싱(Caching)이란
캐싱이란 한번 접근 후, 또 요청할 시 빠르게 접근하기 위해 레지스터에 데이터를 저장시켜 놓는 것입니다.
POST
- POST는 수행하는 것, 데이터를 추가/수정하기 위해 사용
- 데이터를 HTTP body에 담아 전달한다.
- GET과 달리 URL에 데이터가 노출되지 않는다. BUT 암호화가 되지는 않음
- 전송하는 길이에 제한이 없다.
- 캐싱할 수 없다.
→ 주로 서버에 데이터를 전달하기 위해 사용
반응형
'cs지식 > CS' 카테고리의 다른 글
[CS] 쿠키(Cookie)와 세션(Session) 차이 (0) | 2021.05.26 |
---|