W1_H4_GET / POST 방식 구현

·2023년 4월 5일
0

노말틱 취업스터디

목록 보기
3/16
post-thumbnail

💻 GET / POST 방식으로 메시지 출력해보기

🤍 HTTP 프로토콜

: 웹 클라이언트와 웹 서버간 데이터 전송을 위한 프로토콜. 데이터 전송을 위해 약 7가지 정도의 메소드를 지원함

  • GET 방식 : URL에 파라미터를 붙여서 전송함. 특정 리소스에서 요청 데이터를 받아옴
    -> 캐시화 되서 브라우저 기록에 남음. 민감한 데이터에서는 사용X. 길이 제한이 있고, 요청 데이터에만 사용됨.
    -> URL 뒤에 '?'를 사용하여 파라미터 작성
/test/demo_form.php?name1=value1&name2=value2
  • POST 방식 : 리소스 생성 또는 갱신을 위해 서버측에 데이터를 보낼 때 사용
    -> post 방식은 절대 캐시화되지 않고, 브라우저에 기록되지 않는다. 데이터 길이의 제한이 없다.
    -> Body 영역에 데이터를 넣음 ( Header Content-Type 필요 )
POST /test/demo_form.php HTTP/1.1
Host: w3schools.com

name1=value1&name2=value2

✍🏻 우분투 구현

1. get.html 생성

// 터미널에서 get.html 파일 생성
cd /var/www/html
sudo vim get.html
<!DOCTYPE html>
<html>
        <head>
                <meta charset="UTF-8">
                <title>GET</title>
        </head>
        <body>
                <p>
                <form action="get.php" method="get">
                        INSERT YOUR MESSAGE:
                        <p><input type="text" name="message" placeholder="msg"></p>
                        <p><input type="submit"></p>
                </form>
                </p>
        </body>
</html>

2. get.php 생성

php 파일은 /var/www/html 경로 아래에 생성해야 작동한다.

cd /var/www/html
sudo vim get.php
<!doctype html>
<html>
<head>
        <meta charset="utf-8">
</head>
<body
        <p>message successfully sent</p>
        sent message: <?php echo $_GET["message"];?>
</body>
</html>

3. post.html 생성

<!DOCTYPE html>
<html>
        <head>
                <meta charset="UTF-8">
                <title>POST</title>
        </head>
        <body>
                <p>
                <form action="post.php" method="post">
                        INPUT YOUR MESSAGE:
                        <p><input type="text" name="message" placeholder="msg"></p>
                        <p><input type="submit"></p>
                </form>
                </p>
        </body>
</html>

4. post.php 생성

<!doctype html>
<html>
<head>
        <meta charset="utf-8">
</head>
<body
        <p>message successfully posted</p>
        sent message: <?php echo $_POST["message"];?>
</body>
</html>


❗ 브라우저에서 PHP 파일을 열 수 없는 이유

유저가 브라우저에 어떤 정보를 요청하면, 브라우저는 웹 서버에 데이터를 요청하고, 이를 php 해석기에 해석해달라고 요청한다.

유저 -> 브라우저 -> 웹 서버 -> php 해석기

우리는 입력 값을 html form 태그 내 action 속성을 활용하여 웹 서버로 보내게 되는데, 웹 서버는 php 파일을 읽지 못하므로 php 해석기에 일을 요청하게 된다.

php 해석기 -> 웹 서버 -> 브라우저 -> 유저

그런 후 php 해석기에서 해석된 값을 서버가 값을 받아와 유저에게 다시 전달하는 것이다. 즉, php 코드는 클라이언트측이 아닌, 서버쪽 언어이기 때문에 브라우저에서는 실행된 값만을 보여줄 수 밖에 없다!


❗ vm 강제 종료로 인한 파일 손상 문제2

세이브된 swp 파일 삭제 (아니면 파일 수정 불가)

sudo ls -a	// 삭제할 파일 존재 여부 확인

sudo rm phpinfo.php.save // 파일 삭제
sudo ls -a	//제대로 삭제가 되었는지 확인

🤍 참고 링크

profile
화이트해커 꿈나무 엘입니다😉

0개의 댓글