정적 서비스 : html, css, js (고정된 결과만 보여줌)
동적 서비스 : 요청할 때보내는 값에 따라 결과가 달라짐
- 둘의 서버가 다름
정적(웹서버) : ex) 아파치, NginX
동적(WAS Web Application Server, Servlet Container) : ex) 톰캣
[장점]
- 단순함
- 캐싱 가능(caching, 저장)
-> 주소 저장 (북마크, 즐겨찾기, 주소 공유)
[단점]- 글자수 제한
- 보안에 취약(비밀번호 주소에 보임)
json타입
{
"name1" : "value1"
"name2" : "value2"
"name3" : "value3"
}
[장점]
- 길이 제한이 없음
- 데이터를 숨겨서 전달(보안성 향상)
[단점]
- caching 불가 (북마크 하면 원하는 페이지를 볼 수 없음)
- 서버에서 추가적인 문자 인코딩 처리 필요
- Servlet
"웹 서비스 기능을 해주는 자바 클래스"를 말하는 것으로
자바 소스코드 속에 HTML 코드가 들어가는 형태
-> HTML 문서를 작성하는데 복잡하고 번거롭다는 단점이 있음.- JSP
복잡한 Serlvet을 좀 더 간단히 사용할 수 있음.
Servlet과 반대로 HTML소스코드 속에
자바 소스코드(<% %> 또는 <%= %>)가 들어가는 형태.
컴파일을 통해 클래스 파일로 변환되어 웹 서버(WAS)에서 실행됨.
동작 순서
1. 개발자 요청이 서블릿 컨테이너로 전달 ->
2. 컨테이너는 (HTTPRequest, HTTPResponse 객체 생성 후) dopost() 혹은 doget() 메소드를 호출 ->
3. HTML문서 부분을 JSP로 분리 ->
4. JSP 로직 수행 후 컨테이너로 Response 전달 ->
5. JSP 수행 결과와 Servlet이 결합하여 .class 파일 생성