복습
HTTP 프로토콜
- 클라이언트Peer <── 데이터교환 ──> 서버Peer
- 통신규약, 통신법칙
- 010101010의 2진형태를 HTTP를 통해 parsing
모델1 & 모델2 차이점
HTTP Request 포장규칙
request line
- 보안에 취약
- 모두에게 노출될 수 밖에 없는 구조
- line에 들어가는 데이터들
- 수신자에 대한 주소 정보 URL
- request method = http method
- 요청의 목적과 요청의 패키징 방식 식별
- 프로토콜에 대한 정보
- 어떤 리퀘스트를 날리고 있는지 표현할 수 있어야 한다
- http메서드 종류
- GET(R),POST(C),PUT/PATCH(U),DELETE(D)
- HEADER(돌아오는 응답데이터 형태 저장)
- option(preflight) : 현재서버가 특정 메서드 지원하는지 확인
- trace : 디버깅
- 목적에 따라 내용이 있을수도 있고 없을수도 있다
- 현재 요청에 대한 메타데이터
- 클라이언트가 직접 입력한 정보가 아니고 브라우저가 주는 정보
- key,value 형태로 전달
- GET방식일때(body가 없다면) Line에 쿼리스트링으로 데이터 전달 (보안에 취약) -> POST방식이 나음
- parameter-String
- part-이진데이터
- part는 자기만의 lineheader를 가지고 있다
- 파트 하나당 하나의 섹션을 가지고 있다
- enctype=multipart
- 바디영역을 여러섹션으로 쪼갠 후 하나의 섹션마다
자기만의 섹션과 헤더를 구조 - 데이터타입이 다 다를 수 있다
- header 종류
- accept
- accept-language
- accept-encoding
- user-agent
request Body
- POST 방식일때만 필요
- messagebody, contentsbody
Model2
객체지향 5가지 법칙 S O L I D - S(단일책임원칙)과 관련
- 서블릿 - 1단계
- 서블릿-클라이언트의 요청 분석
- 필요한 데이터 생성
- '스코프'를 통해 JSP에 데이터 전달
- UI를 구성할 수 있는 VIEW를 선택
- 선택한 VIEW로 이동
- JSP(VIEW) - 2단계
- 스코프를 통해 1단계에서 받은 데이터를 꺼낸다
- 3단계 - %구멍% 치환(응답데이터 만듦) - UI 구성 - 내보냄
Model2 장단점
- 장점 : WEB-INF 밑에 있어서 외부에서 접근 불가
- 단점 : 구조를 쪼개서 하므로 코드분석이 어려워짐
Model1
- 요청과 응답을 나눠서 작업하지 않고 한곳에서 처리
- req.getParameter - 클라이언트가 보낸 파라미터 꺼내쓴다
- 모델2방식 - 서블릿에서 getParameter 데이터 작업 후 setAttribute - jsp에서 getAttribute로 꺼내쓴다
Model1 장단점
- 코드분석 쉽다 - 구조가 심플
- 가독성이 떨어진다, 수정 어렵다
- 소스를 jsp에 때려박아서 복잡, 협업이 어려움
- 보안에 취약 (원래소스를 외부에서 가져갈수 있다) - 보안하기 위해 모델2 구조 필요
2020.11.25 수요일
user-agent
accept-language
accept
변수 넓은 범위 순부터
- static변수-인스턴수변수(전역변수)-지역변수(method변수)-블럭변수
Map vs Properties
- Map은 PC가 꺼지면 데이터가 날아감 - 힙메모리
- .properties확장자는 데이터 보존
- properties를 클래스패스리소스소 만든다
- message 는 베이스네임
- 나머지 _en, _ko 는 로케일네임
동기&비동기의 차이
- 락이라는 개념
- 동기
- 블럭내에서 자원에 대해 락이 걸린상태에서 처리하는 과정을 동기처리
- 한국,미국 국기 클릭 -> 윈도우 전체 락걸림 -> 응답데이터 도착 -> 화면 바뀜
- a,form,location.href 동기요청 발생
- 비동기
- 락의 '일부분'만 처리
- 국기 아래 '안녕', 'hello'만 바뀜
- AJAX
- Asynchronous JavaScript and XML
숙제
- 사칙연산 서버사이드로 만들어보기
- 피연산자 두개 연산자 4개(enum 구조 적용)
- model2 적용