웹 어플리케이션 (Web Application)
웹 어플리케이션, 인터넷 및 웹 브라우저에서 이용할 수 있는 응용 프로그램을 말함
웹 브라우저 - Tap(윈도우) = 사용자 ←→ 서버
GET vs POST 방식의 차이
GET
- 주소창에 직접 원하는 데이터를 적거나 링크를 클릭해 호출
- 호출시 필요데이터 (&, ?) 로 전송, 특정한 정보 조회시에 많이 사용함
- 중요 데이터나 정보를 전송하는 방식으로는 부적합하다 (주소창에 직접적으로 노출되어지기 때문에)
POST
- 입력화면에서 필요한 내용을 작성후 전송(Submit) 을 클릭해 호출
- 주소와 데이터를 따로 보내는 방식 (회원가입, 로그인 등)
Servlet 에서의 GET, POST
doGet() - GET 방식으로 정보전달 시 호출
doPost() - POST 방식으로 정보전달 시 호출
Request와 Response
Request
Response
- 서버는 ‘응답’ 데이터를 만들어 브라우저로 보냄
정적 데이터와 동적 데이터
서버는 정적 데이터와 동적 데이터를 구분하여 처리한다.
정적 데이터
- 항상 동일하게 고정된 데이터를 전송하는 방식의 파일을 의미
- HTML, CSS 등이 있다.
동적 데이터
- 매번 필요할 때 다른 데이터를 동적으로 구성해서 전송하는 방식의 파일
- WAS 웹 어플리케이션 서버 ⇒ 서버 사이드 프로그래밍
HTTP (Hyper Text Transfer Protocol)
프로토콜(Protocol) 이란?
- 데이터 교환 약속을 의미함
- https://www.
. com → https (프로토콜) www..com 호스트(도메인)
HTTP 메시지는 헤더와 바디로 구성되어진다
- Request header / Request Body
- Response header / Response Body
무상태(Stateless)
웹은 지난번 상태를 기억하지 않는다.
이를 처리하기 위해 쿠키(Cookie), 세션(Seission), 스토리지(Stroage) 방식을 사용한다.
서블릿(Servlet)
개발자가 서버에서 처리되어야 하는 기능의 일부만 작성할 수 있도록 만들어진 JAVA EE 기술 스펙의 일부를 의미
기존 JAVA프로그래밍과 다른점
- 객체를 생성 또는 호출 주체가 사용자가 아님
- 서블릿 컨테이너(Tomcat)이 처리
- ⇒ main() 이용하여 프로그램을 실행하지 않는다
쿼리스트링
특정한 URL에 포함된 추가적인 데이터
GET의 경우 키(key) = 값(value)의 형태로 구성
- 동일한 키가 여러번 나올 수 있다
- 문자열로만 전송이 가능하다
POST의 경우 동일한 문자열이지만 전송되는 위치가 다르다
- 서버사이드 프로그래밍에서는 쿼리스트링에 있는 키를 파라미터라고 부른다
Servlet vs JSP
Servlet - Java 코드를 자유롭게 사용할 수 있다. 상속, 조합, 모든 처리가 가능하다
JSP - 복잡한 화면 구성을 위한 처리에 유용하다.
Servlet = JAVA코드 + HTML
JSP = HTML + JAVA코드