Network
[네트워크] GET 과 POST의 차이
cherishee
2020. 9. 8. 12:32
HTTP
HTTP 는 HyperText Transfer Protocol 의 줄임말로 웹에서 클라이언트와 서버 사이에 데이터를 주고 받을 수 있는 프로토콜이다
HTTP Method로 2가지 방식이 있다. Get방식과 Post방식이다.
GET
데이터를 Http request Message
의 Header 부분의 URL에 담아서 전송하는 방식이다. URL뒤에 ?
를 사용해 끝을 알리고, key=value 로 데이터를 전송한다. 여러개의 key와 value를 보낼 때는 &
를 사용한다.
특징은 다음과 같다.
- URL에 담에서 데이터를 전송하기 때문에, 데이터 크기가 제한적이다.
- URL에 데이터가 그대로 노출되기 때문에 보안에 취약하다.
- 캐시가 가능하다. GET을 통해 서버에 데이터를 요청할 때, 웹 캐시가 요청을 가로채 서버로부터 데이터를 다시 다운로드하는 대신 데이터의 복사본을 반환한다.
- 히스토리와 북마크가 가능하다.
- SELECT와 같이 데이터를 요청할 때 사용한다.
POST
데이터를 Http request Message
의 BODY에 넣어서 전송한다. 특징은 다음과 같다.
- BODY에 넣어서 전송하기 때문에 대용량 데이터를 전송할 수 있다.
- 데이터가 BODY안에 있기 때문에 GET보다 보안성이 좋다. 하지만 민감한 데이터는 따로 암호화를 해야한다.
- INSERT, UPDATE 와 같이 데이터를 생성, 수정할 때 사용한다.
- 'Conent-Type'을 명시해야한다.
application/x-www-form-urlencoded
: BODY에key와value쌍으로 데이터를 넣는다. 똑같이 구분자 &를 쓴다.text/plain
: BODY에 단순 텍스트를 넣는다.multipart/form-data
: 파일전송을 할때 많이 쓰는데 BODY의 데이터를 바이너리 데이터로 넣는다는걸 알려준다.