프로그래밍/PHP

[PHP] HTTP란?, Form(POST,GET) 예제

노력의천재 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 프로그래밍 입문, 한빛아카데미