ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • GET과 POST의 차이!!
    Web/Tip !! 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

    'Web > Tip !!' 카테고리의 다른 글

    Ubuntu php5.6 , php7.1 설치 및 셋팅하기  (0) 2017.11.22
    리눅스 계열 php Display Error Code  (0) 2017.11.11

    댓글 0

Designed by Tistory.