웹은 기본적으로 클라이언트 / 서버 구조로 요약할 수 있다.
클라이언트 (Web Browser Page) 에서 Server로 요청을 보낸다.
웹서버의 종류는 Apache, Nginx, IIS, Tomcat 등이 있고, HTTP protocol을 사용한다.
서버는 같은 프로토콜을 이용해서 요청에 대해 응답(Response) 한다.
HTML의 FORM 태크는 클라이언트 쪽에서 가장 친숙하고 편리한 방법으로 서버에 데이터를 보내는 것에 대한 HTTP 요청을 구성할 수 있다.
<Form> 태크 요소는 어떤 데이터를 보낼 건지 정의한다. 유저가 Submit Button 을 누르는 순간에 엔지니어가 구성한 내용으로 요청이 보내지는 것으로 속성들이 설계되어졌다.
Action은 데이터가 전송되는 위치를 정의한다. 유효한 URL만 가능하며, URL이 제공되지 않았다면 Form 태그를 포함한 페이지로 URL로 데이터가 보내질 것이다.
<form action="http://url.com"> 절대경로
<form action="/somewhere"> 절대 경로
(절대경로와 상대경로가 가능하다)
Method : 어떤 HTTP 방식을 사용할지 지정한다 (GET, POST)
Get과 Post의 차이를 말하자면
Get은 서버에게 자원(Resource)를 달라고 묻는 요청이다. Requst의 Body 에는 빈값으로 들어가고
URL에 데이터가 포함되서 보내진다.
<form action="url" method ="get or post">
www.example.com?Data=Hi&Page=1
Post는 약간 다릅니다 Request Body 안에 데이터를 넣어서 서버에게 보냅니다. 보낸 값에 대한 적절한 결과를 다시 달라고 보내는 것입니다.
Get은 Resource에 대한 요청을 할 때 항상 같은 자원을 요청 받을 수 있도록 보장됩니다.
하지만 Post는 요청에 대해서 같은 결과를 받을 수 있다고 보장하지 못합니다.