-
Servlet HTTP와 GET과 POSTback-end&DB/Java 2023. 6. 14. 18:28728x90
1. HTTP와 HTTP 패킷
HTTP
인터넷 상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 전송 프로토콜
HTTP 패킷
Client가 server로 요청을 보냈을 때 보내는 데이터
2. GET과 POST
GET
- URL로 데이터 전송
- 전송하는 데이터의 길이에 한계(1024byte)
- URL에 데이터가 노출 되어서 상대적으로 보안에 취약
- method속성에 따로 작성하지 않으면 기본 값
- Post방식 보다 빠름
- 캐시(임시저장소)에 저장히기 때문에, 데이터를 다시 로딩하지 않아도 되서 속도가 빠르다.
- ? : 데이터 표현의 시작점
- 데이터는 key=value의 형태로 전송
- & : key를 구분
POST
- 패킷의 Body 부분에 담아서 전송
- 전송하는 데이터의 길이 제한 X
- 데이터가 노출되지 않기 때문에 get방식에 비해서 보안에 강함
- method속성에 post라고 명시
- Application/x-www-form-form-urlencoded : 기본값
- 데이터를 Key=value의 형태로 전송
- Text/plain : 일반 txt형태로 전송
- Multipart/form-data : 파일 전송
- Application/x-www-form-form-urlencoded : 기본값
<!-- html에 작성하는 문장 --> <h1> GET 방식 </h1> <form action="Ex08_getPost" method="get"> DATA : <input type="text" name="data"> <input type="submit" value="전송"> </form> <h1> POST 방식 </h1> <form action="Ex08_getPost" method="post"> DATA : <input type="text" name="data"> <input type="submit" value="전송"> </form>
//Servlet에 작성하는 문장 //post 방식 인코딩 request.setCharacterEncoding("UTF-8"); //get방식인지 post방식인지 확인하는 문장 String method = request.getMethod(); String data = request.getParameter("data"); //get 방식 인코딩 response.setContentType("text/html; charset=UTF-8"); // 웹 출력문 response.getWriter().print(data + " "+method);
실행화면
- get 방식
- http://localhost:8081/sh/Ex08_getPost?data=안녕
- server폴더 - server.xmi-63번째줄 Connector태그에 속성추가
- URLEncoding="인코딩방식"
- post방식
- http://localhost:8081/sh/Ex08_getPost
- 데이터가 담겨 있는 request객체에 인코딩방식 지정
728x90'back-end&DB > Java' 카테고리의 다른 글
JSP JSTL (0) 2023.06.25 JSP 필요성과 기본 태그 (0) 2023.06.15 Servlet URL (0) 2023.06.13 servlet 인코딩 방식 (0) 2023.06.13 JAVA 제네릭스와 제네릭클래스 (0) 2023.05.27