ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PHP] HTTP란?, Form(POST,GET) 예제
    프로그래밍/PHP 2019. 9. 26. 21:07

    HTTP(Hyper Text Transfer Protocol)

    웹 브라우저와 웹 서버가 서로 소통하기 위한 프로토콜, 통신 규약이다.

    우리가 흔히 말하는 웹은 HTTP가 제공하는 서비스를 바탕으로 이루어진다.

    HTTP의 동작 원리는 다음과 같다.

     

    출처 : PHP 프로그래밍 입문 ppt

     

    웹 브라우저(클라이언트)가 프로토콜에 의해 웹 서버에 데이터를 요청(request)하면 웹 서버는 이를 처리하여 결과를 웹 브라우저에 돌려준다. 이때 클라이언트에서 웹 서버로 데이터를 요청하는 방식에 POST와 GET방식이 있다.

     

    POST 방식은 회원 가입 양식이나 게시판에 글을 쓸 때 처럼 사용자가 form 양식에 입력한 데이터를 서버로 전달할 때 사용, GET 방식은 링크를 보낼 때 URL 주소 뒤에 데이터를 입력하여 웹 서버로 전달한다.

     

    다음은 간단한 예제와 결과이다.

     

    POST 방식 예제

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
    <body>
            <form name="form1" method="post" action="sub.php">
                아이디 : <input type="text" name="id"><br><br>
                패스워드 : <input type="password" name="pw"><br><br>
                <input type="submit" value="확인">
                <input type="reset" value="취소">
            </form>
        </body>
    </html>
    cs

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php 
        $id=$_POST["id"];
        $pw=$_POST["pw"];
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <?=$id ?>님 환영합니다.
        </body>
    </html>    
    cs

     

    GET 방식 예제

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
    <body>
            <form name="form1" method="get" action="sub.php">
                아이디 : <input type="text" name="id"><br><br>
                패스워드 : <input type="password" name="pw"><br><br>
                <input type="submit" value="확인">
                <input type="reset" value="취소">
            </form>
        </body>
    </html>
    cs

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php 
        $id=$_GET["id"];
        $pw=$_GET["pw"];
    ?>
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
        </head>
        <body>
            <?=$id ?>님 환영합니다.
        </body>
    </html>    
     
    cs

    URL 주소창에 로그인 입력 정보가 붙어서 온다.

     

    정리

     

    POST방식은 패킷 헤더에 정보를 담아서 전송하기 때문에 보안성이 높고 방대한 데이터를 전송할 수 있다는 장점이 있다.

    반면에 GET방식은 URL에 정보를 담아서 전송하기 때문에 보안이 취약하다는 단점이 있지만 코딩이 비교적 쉽기 때문에 데이터 전송이 쉽다는 장점이 있다.

     

     

    출처 : 황재호, PHP 프로그래밍 입문, 한빛아카데미

     

    댓글

Designed by Tistory.