Web/Tip !!

GET과 POST의 차이!!

IMyoungho 2018. 6. 9. 23:25

웹 공부를 하면서 정리를 해보려고 합니다~


오늘 포스팅 할 내용은 GET과 POST의 차이입니다.


GET : 가져오는 방식 -> 값을 변경하지 않는 보여주기 역할을 할 때 사용됨

URL Header가 표기됨 ex> ho05.net?id=11&type=post -> URL에 이어붙임으로 길이제한이 있음 많은양의 데이터를 보내기 힘듬

링크를 걸어서 남들에게 줄 수 있음, 간단한 데이터를 보내는데 적합!

캐시의 기능(캐싱) 즉, 한 번이라도 접근 했을시 데이터를 저장하여 다음 접근에 바로 사용할 수 있게함 속도가 빨라짐

(물론 POST도 캐싱 기능이 가능함 http 해더를 어떤식으로 넣어주느냐에 달림

 -> POST로 Cache하려면 파일 변경여부를 구분해주어야함, 세션에 부가정보를 기록하고 선택적으로 Modified여부를 해주어야함)

GET방식에서는 Key-Value 쌍으로 보내며 www.ho05.net/?id=ho 

두 개 이상일 시 구분자로 &를 이용한다. www.ho05.net/?id=ho&pwd=qwer

보통 body는 비어서 전송된다



POST : 수행하는 방식 -> 서버의 값이나 상태를 바꾸기 위해 사용함 데이터베이스의 값이 수정되는 글쓰기 등에 사용됨

많은 양의 데이터를 보내는데 적합함 -> 데이터 전송을 기반으로한 메소드

이유 : form을 이용하여 submit하는 형태이기 때문에 -> 데이터가 body에 숨겨져서 보내짐

POST방식으로 데이터를 보낼 시에는 반드시 Content-Type Header필드를 명시해줘야함!

작성하지 않는 경우 1번으로 셋팅되며 GET과 마찬가지로 BODY에 key와 value쌍으로 데이터를 넣게됨(ex> id=ho&pass=qwer) 구분자는 &

2번의 경우 body에 단순 txt를 넣음

3번의 경우 파일을 전송할 때 많이 사용됨, body의 데이터를 바이너리 데이터로 넣는다는 것을 알려줌


-> GET과 POST 모두 보안적인 측면에서 뛰어나지는 않다!!


위의 GET과 POST를 구분하지 못하여 발생한 Google Accelerator사건!

-> 웹서핑의 속도 향상의 목적으로 Accelerator을 발표한 구글!

-> Accelerator은 어떤 웹사이트 방문 시 모든 URL을 미리 클릭하여 캐시를 이용하여 방문사이트속도를 올리는 원리를 사용함

-> 그러나! 웹개발자들이 GET POST차이를 인식하지 못해 막 사용했고 GET에서도 Delete와 같은 메서드를 이용해버림~

-> 결과적으로 URL에 ....net/delete?id=xxx가 GET으로 보내지면 지워저버리는 현상이 일어남

-> Accelerator에  의해 의도하지 않은 지워짐이 발생함



가져오는 곳에서는 GET을 사용해야함 -> Link 문제!!

웹의 모든 리소스는 Link할 수 있는 URL을 가지고 있어야함

어떤페이지를 다른사람에게 줄 수있는 주소창의 URL을 복사할 수 있어야함 

그러나 POST의 경우 값이 내부적으로 감춰져서 전달되기 때문에 URL만 전달할 수가 없음




* 퍼머링크(인터넷에서 특정페이지의 고유한 URL을 의미, 이 주소는 어떤 상황에서도 관계없이 항상 동일한 내용을

가지는 페이지로 링크된다는 의미에서 고유(Permanent)한 주소라는 뜻임, 한국어로는 고유링크, 고유주소라함)


출처:https://blog.outsider.ne.kr/312

출처:http://mommoo.tistory.com/60

반응형