네트워크 전송 방식 - GET과 POST 알아보기





    이전 포스팅에서는 폼을 이용한 데이터를 입력하는 과정을 알아보았습니다

    폼의 데이터를 입력하후 버튼을 클릭하게 되면 서버의 데이터가 전송하게 되는데 이 과정에 전송 방식을 지정할 수 있습니다

    전송 방식을 알기에 앞서 간단한 서버와 사용자 간에 처리 과정을 알아야 됩니다

    서버와 사용자 간의 요청과 응답이 이루어지게 되는데 이것을 HTTP라는 프로토콜이라고 합니다


    사용자가 서버에 요청에 사용되는 전송 방식이 여러 가지가 있으며, 전송 방식 중 대표적으로 GET 방식과 POST 방식으로 나뉘게 됩니다


    이번 포스팅에서 GET방식과 POST방식의 공통점, 차이점, 사용목적에 대해서 알아보겠습니다



    이전글 :


    PHP란 무엇인가? - http://server-talk.tistory.com/25


    PHP/기본문법 - 화면출력 알아보기 - http://server-talk.tistory.com/227


    PHP/기본문법 - 문자 알아보기 - http://server-talk.tistory.com/228


    PHP/기본문법 - 숫자 알아보기 - http://server-talk.tistory.com/229

    PHP/기본문법 - 변수 알아보기 - http://server-talk.tistory.com/230


    PHP/기본문법 - 관계연산자 알아보기 - http://server-talk.tistory.com/233


    PHP - 폼을 이용한 입력과 출력 알아보기 - http://server-talk.tistory.com/233






     GET 방식과 POST 방식



    GET 방식과 POST 방식은 사용자가 서버에 요청하는 메서드 입니다




    1. GET 방식




    위 내용을 폼을 이용하여 GET 방식을 이용한 간단한 로그인 페이지입니다 로그인 페이지에서 로그인을 하게 되면 이전 페이지에 입력한 ID와 PW의 내용이 URL에 표시되는 것을 확인하실 수 있습니다


    즉 GET 방식은 사용자가 서버에 요청한 후 서버에서 응답을 받을 때 URL 상에 정보가 담겨서 전송되게 됩니다


    그러나 로그인 페이지에서 ID와 패스워드가 URL에 노출이 된다면 굉장히 위험한 보안적 이슈가 발생하게 되며, GET 방식 같은 경우에는 보안적으로 노출이 되지 않아야 되는 곳을 사용하지 않습니다


    그렇다면 GET 방식은 사용해야 되는 곳이 있습니다 GET 방식으로 사용이 필요하 곳을 자유게시판 같은 곳을 예를 들어보겠습니다

    자유게시판의 글을 사용자에게 접근하기 위해선 URL이 필요하며, 또한 현재 포스팅한 블로그도 URL이 필요합니다 다른 사용자가 접근을 용의하기 위한 노출이 되어도 문제가 없는 곳을 GET 방식으로 사용하게 됩니다




    2. POST 방식



    위 내용을 폼을 이용하여 POST 방식을 이용한 간단한 로그인 페이지입니다 로그인 페이지에서 로그인을 하게 되면 이전 페이지에 입력한 ID와 PW의 내용이 URL에 표시되는 않는 것을 확인하실 수 있습니다


    즉 GET 방식은 사용자가 서버에 요청한 후 서버에서 응답을 받을 때 URL 상에 표시 되는 않는 것으로 생각하시면 됩니다.


    POST 방식은 로그인, 회원가입 정보가 URL에 노출이 되지 않게 하기 위한 것을 하기 위해 사용됩니다







     GET 방식과 POST 방식의 로그분석



    이번에는 GET 방식과 POST 방식을 웹로그 통해 알아보겠습니다



    1. HTML 폼



    HTML 전송
    Host : 192.168.65.1
    GET /in_put/get.html HTTP/1.1" 200 190 "http://server-talk.com/in_put/" 
    


    위 로그는 폼 로그인 페이지 입니다




    2. GET 방식



    Host : 192.168.65.1 
    GET /in_put/input.php?id=server&pw=talk HTTP/1.1" 200 13 "http://server-talk.com/in_put/get.html"
    


    위 로그의 GET 방식인 것을 확인 하실수 있으며, http://server-talk.com/in_put/get.html(폼 페이지)를 통해 데이터를 전송 받아 /in_put/input.php?id=server&pw=talk(URL)의 접근 한것을 확인 할수 있습니다



    3. POST 방식



    Host : 192.168.65.1 
    POST /in_put/input.php HTTP/1.1" 200 13 "http://server-talk.com/in_put/post.html"
    


    위 로그의 POST 방식인 것을 확인 하실수 있으며, http://server-talk.com/in_put/get.html(폼 페이지)를 통해 데이터를 전송 받아 /in_put/input.php(URL)의 접근 한것을 확인 할수 있습니다

    Posted by 서버이야기