1. stateless
- server는 client를 기억하지 못한다.
- client를 기억하기 위한 다양한 기술
- cookie, session, jwt
2. Request
3. Response
- 정상적인 request
- 200
- 비정상적인 request
- 404: 존재하지 않은 URL 요청
- 401, 403: 허가되지 않은 요청
4. forward / redirect
서버에서 처리하는 방식
forward
브라우저로 요청을 전달하는 것이 아니라 서버 내의 다른 리소스를 호출하는 방식
- 요청 정보를 WAS 내 다른 리소스로 전달함
- 요청 정보를 함께 전달
- 페이지 이동 없이 WAS 내부에서 다른 리소스를 호출하여 Redirect보다 빠름
- 최초 요청한 URL이 변경되지 않음
redirect
요청을 브라우저로 전달하여 새로 요청하게 만들어 두번씩 통신이 일어남
- 요청을 Web Browser에게 전달하여 새로 요청하게 만듬
- WAS 서버와 Web Browser 간 두번 통신이 일어나 forward보다 속도가 느림
- 새로운 URL로 요청하여 request 정보가 기본적으로 전달되지 않음
https://dev-handbook.tistory.com/35
5. TCP/IP
1.0 -> 1.1
TCP/IP 위에 Application Protocol이 HTTP인데 1.0(TCP/IP까지 disconnect)
1.1은 HTTP만 disconnect 되고 TCP/IP 연결 유지
6. static vs dynamic content
static content
image, html, css, js 파일 등 파일로 존재
dynamic content
동적으로 만들어지는 content
ooo님 안녕하세요~ -> 사용자에 따라 동적으로 만들어야 함
Web Server vs Web Application Server(WAS)
Web Server
- Apache
- static content를 관리
(ex. 이미지 등 정적 컨텐츠를 가지고 있다가 관련 클라이언트로부터 관련 요청이 들어오면 파일 I/O를 해서 바로 보냄)
- dynamic content가 필요하다면 WAS에 요청해 응답 받고 클라이언트로 전달
Web Application Server
- Tomcat, Resin, Web Logic, Jeus
- dynamic content를 관리
post 기본 request body
x-www-form-urlencoded
-> form-data는 따로 설정해줘야함
MVC
servlet이 controller 역할(request 정리)
java - database가 model 역할
jsp가 view 역할
-> forward 방식 사용됨