get / post
2022. 2. 8. 10:54ㆍStudy/PHP&MySQL
클라이언트가 서버로 요청을 보내는 방법인 HTML Method에는
크게 GET 방식과 POST방식 2가지가 있다.
<form name="member_form" action="insert.php" method="post">
<label for="idname">아이디</label>
<input type="text" id="idname" name="idname"> *8자 이내로 만들어주세요
</form>
get vs post
처리방식 | get | post |
URL에 데이터 노출여부 | O | X |
URL 예시 | insert.php?name=제목&contents=내용 | insert.php |
데이터의 위치 | Header (헤더) | Body (바디) |
캐싱 가능 여부 | O | X |
get방식
어떠한 정보를 가져와서 조회하기 위해 사용되는 방식.
GET 방식은 간단한 데이터를 URL에 넣도록 설계된 방식으로 데이터를 보내는 양에 한계가 있다. HTTP 자체는 GET 방식의 URL 길이에 제약을 두고 있지 않지만, 브라우저에서 최대 길이를 제한하고 있으며 URL 형식에 맞지 않는 파라미터 이름이나 값은 인코딩되어 전달되어야 한다.
- URL에 변수(데이터)를 포함시켜 요청한다.
- URL에 데이터가 노출되어 보안에 취약하다.
- 데이터의 양이 적을 때 주로 사용된다.
데이터를 Header(헤더)에 포함하여 전송한다.캐싱할 수 있다.
insert.php?idname=green&pass=1234&pass2=1234
- form요소가 아닌 a태그에 링크를 거는식으로 데이터를 넘길 수도 있다.
<a href="insert.php?idname=green&pass=0505">데이터 전송</a>
insert.php
get방식으로 넘어온 변수는 $_GET["변수명"] 이나 $_REQUEST["변수명"] 으로 표기한다.
<?
echo "전송이 완료되었습니다.<br>";
$idname = $_GET["idname"];
$pass = $_GET["pass"];
echo "입력된 아이디 값은 : {$idname}<br>";
echo "입력된 패스워드 값은 : {$pass}<br>";
?>
post방식
POST라는 단어는 부치다, 제출하다 라는 뜻을 가지고 있다. 데이터를 서버로 제출하여 추가 또는 수정하기 위해서 사용하는 방식이다.
- URL에 변수(데이터)를 노출하지 않고 요청한다.
- URL에 데이터가 노출되지 않아 기본 보안은 되어있다.
데이터를 Body(바디)에 포함시킨다.캐싱할 수 없다.
insert.php
insert.php
post방식으로 넘어온 변수는 $_POST["변수명"] 이나 $_REQUEST["변수명"] 으로 표기한다.
<?
echo "전송이 완료되었습니다.<br>";
$idname = $_POST["idname"];
$pass = $_POST["pass"];
echo "입력된 아이디 값은 : {$idname}<br>";
echo "입력된 패스워드 값은 : {$pass}<br>";
?>
* php.ini 파일의 register_globals = On 으로 수정하면 get/post로 넘어온 변수를 바로 사용할 수 있다.
* php.ini 파일의 register_globals = Off (기본값) 설정으로 get/post로 넘어온 변수를 바로 사용할 수 있는 방법에는 @extract();
<?
@extract($_POST);
@extract($_GET);
?>
'Study > PHP&MySQL' 카테고리의 다른 글
MySQL 명령의 일괄 실행 (0) | 2022.02.09 |
---|---|
MySQL 명령어, DB Table (0) | 2022.02.08 |
form 유효성 검사 (0) | 2022.02.07 |
php 배열과 함수 (0) | 2022.02.04 |
php 기본문법 (0) | 2022.02.04 |