JSP, Servlet 공부를 하면서 참고한 서적입니다.
프로젝트로 배우는 자바 웹 프로그래밍
GET & POST
GET과 POST 메서드는 웹 서비스 개발에 주로 사용하는 메서드 입니다.
두 방식 모두 서버에 요청을 하는 메서드 입니다. HTML의 form태그에 method 방식을 지정하는데
get과 post 두 가지 중 한가지의 방식으로 지정합니다.
-
GET 방식
서버에 있는 정보를 가져오려고 설계된 기법입니다. 서버에 최대 240byte까지 데이터를 전송 할 수 있습니다.
URL이 노출되기때문에 보안상 문제가 생길 수 있습니다. 검색엔진을 사용하여 검색하면 URL에 표시되듯이 보안에 약함에도 불구하고
사용하는 이유는 속도가 빠르기 때문입니다.http:// www.example.com?id=mommoo&pass=1234
이런 주소 방식으로 전달 됩니다.
?는 데이터 표시의 시작점
이며 이후 값들을 서버에서QUERY_STRING
을 통해 전달 되고
속성=값 즉, 변수명(필드)=값
형태로 사용해야 합니다.&는 속성값을 연결해주는 문자열
입니다. 즉, URL에변수(데이터)
를 포함시켜 요청합니다. GET 방식에서 BODY에 특별한 내용을 넣을 것이 없으므로 BODY가 빈상태로 보내집니다. 따라서 BODY 데이터를 설명하는 Content-Type이라는 헤더필드는 들어가지 않습니다. 개인정보가 포함되지 않는 상황에서 캐싱을 하여 속도를 높이거나 즐겨찾기를 편리하기 위해 사용되는 경우가 많습니다.캐싱(Caching) : 한번 접근 후, 또 요청할시 빠르게 접근하기 위해 레지스터에 데이터를 저장시켜 놓는 것
우리가 어떤 물건 a에 대해서 즐겨찾기를 추가하면 그 물건의 이름이 a라는 정보를 url에 추가하여 즐겨찾기를 생성할 수 있는 것입니다.
<% String uri = "memberProcServlet?action=update&id=" + member.getId(); %> <td> <button onclick="location='<%=uri%>'">수정</button> </td></tr>
여러개의 Key와 Value를 보내는 경우에 &를 사용하여 이어주는 GET방식은 최소한의 보안유지도 하지 않기 때문에 실제 웹사이트에서 ID와 PW같은 중요한 정보를 GET방식으로 사용하면 개인정보가 노출되는 문제가 발생합니다.
-
POST 방식
POST방식은 서버로 정보를 올리려고 설계된 방법입니다. 예를들어 HTML 폼에 입력한 내용을 서버에 전달하는 것과 같은 행동을 취합니다. 서버에 전달할 수 있는 데이터 크기에는 제한이 없습니다. URL에 변수(데이터)를 노출하지 않고 요청합니다.
POST방식은 URL에 붙여서 보내지 않고 BODY에다가 데이터를 넣어서 보낸다.
따라서, 헤더필드중 BODY의 데이터를 설명하는 Content-Type이라는 헤더 필드가 들어가고 어떤 데이터 타입인지 명시한다.
POST 방식은 URL에 데이터가 노출되지 않으므로즐겨찾기나 캐싱이 불가능하지만 쿼리스트링(문자열)데이터 뿐만 아니라, 라디오 버튼, 텍스트 박스와 같은 객체들의 값도 전송이 가능
합니다.POST 방식 : 로그인(Id, Password)
Content-Type
은 다음과같이 명시할 수 있습니다.response.setContentType(“text/html; charset=UTF-8”);
즉, text/html 이 부분이 MIMI Type이며 application/x-www-form-urlencoded, text/plain, multipart/form-data등이 있습니다.
Reference : 개발자로 홀로서기
近期评论