입력 Form
<html> <body> <?php echo $_GET['id']."님 안녕하세요 !"; ?> </body> </html>
결과
http://localhost:8080/lab/IO_form/22.php?id=test
라는 URL로 접근을하면 결과값은
이렇게 나오는데 url에서 id에 해당하는 parameter값이 test라서!
<html> <body> <?php echo $_GET['id']."님 안녕하세요 !"."<br/>"; echo $_GET['id'].','.$_GET['password']; ?> </body> </html>
password값도 파라미터로 전달해서 받아보면
localhost/IO_form/22.php?id=test&password=12345
값을 전달하는 방법
'?'는 에플리케이션.php와 데이터를 구분해주는 구분자다.
그런데 이렇게 전달하면, 데이터 핸들링이 상당히 불편하기때문에 우리는 FORM을 통해서 값을 입력받고 입력받은 데이터를 전달한다.
FORM
<html> <body> <form method="get" action="2.php"> id : <input type="text" name="id" /> password : <input type="password" name="password" /> <input type="submit" /> </form> </body> </html>
이러한 form인데, password 타입은 password로 숨겨지게 했다.
submit을 누르면,
url이 바뀌고 입력한 데이터를 전달하게 되는데,
http://localhost:8080/lab/IO_form/22.php?id=test01&password=qwer1234
이렇게 바뀌고, 22.php파일이 출력이된다.
form의 action 속성이 하는 역할 !! HTML의 form 내장 함수 !
어떤 url로 보낼 것인가를 action에 지정
어떤 방식으로 보낼 것인가를 method에 지정(여기서는 GET방식으로)
이렇게 상호작용하는 방식을 취하기위해서 우리는 Server Side Script인 PHP를 사용하게 되는 것이다.
- HTTP(HyperText Transfer Protocol, 문화어: 초본문전송규약, 하이퍼본문전송규약)는 W3 상에서 정보를 주고받을 수 있는 프로토콜이다
- HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지(HTML)나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 정보를 해당 사용자에게 전달하게 된다. 이 정보가 모니터와 같은 출력 장치를 통해 사용자에게 나타나는 것이다.
HTTP를 통해 전달되는 자료는 http:로 시작하는 URL(인터넷 주소)로 조회할 수 있다.
URL에 데이터정보를 포함하여 서버쪽으로 데이터를 전달하는 방식
<html> <body> <?php echo $_GET['id']."님 안녕하세요 !"." "."<br/>"; echo "ID:".$_GET['id'] ."<br/>"."password:".$_GET['password']; ?> </body> </html>
결과
localhost/IO_form/22.php?id=test&password=12345
GET방식은 URL에 데이터가 담기는 것을 볼 수 있다.
URL에 데이터정보를 포함하지 않고, 서버쪽으로 데이터를 전달
<html> <body> <?php echo $_POST['id']."님 안녕하세요 !"." "."<br/>"; echo "ID:".$_POST['id'] ."<br/>"."password:".$_POST['password']; ?> </body> </html>
결과
POST방식은 URL의 변화가 없다. 데이터는 잘 받아온다.
그렇다면 로그인이나 이런 개인정보가 담기는 데이터를 서버에 보낼 때는, POST 방식이 맞다고 본다.(URL에 접근하는 보안적 측면에서)
위 두 가지 method의 차이점을 알겠는가?
서버측에도 데이터를 받을 때 _GET[]과 _POST[]를 요청하는 method와 일치를 시켜줘야한다는 것!
Browser에서 method="GET"이면 서버측에도 _GET[], method="POST"이면 서버측에도 _POST[] 이렇게 일치시켜줘야한다.
그렇게 하면 같은 입력 데이터를 서버에서 받을 수 있다.
생활코딩 수업처럼 Fiddler를 사용해서 HTTP를 확인해 볼 것이다.
10일 무료 사용가능!!
이렇게 Request/Response에 담기는 내용을 확인할 수 있다.
추가적으로 개발자 기본 소양으로
Network, TCP/IP에 대한 내용에 대해서는 공부해둬야한다.
생활코딩 https://opentutorials.org/course/3018/5125 PHP
https://ko.wikipedia.org/wiki/HTTP 위키백과 HTTP