JSP 6. enum & request header

zhyun·2020년 11월 25일
0

JspSpring

목록 보기
7/39

복습

HTTP 프로토콜

  • 클라이언트Peer <── 데이터교환 ──> 서버Peer
  • 통신규약, 통신법칙
  • 010101010의 2진형태를 HTTP를 통해 parsing

모델1 & 모델2 차이점

HTTP Request 포장규칙

request line

  • 보안에 취약
  • 모두에게 노출될 수 밖에 없는 구조
    • line을 통한 데이터 전달 방식이 위험
  • line에 들어가는 데이터들
    • 수신자에 대한 주소 정보 URL
    • request method = http method
      • 요청의 목적과 요청의 패키징 방식 식별
      • 프로토콜에 대한 정보
      • 어떤 리퀘스트를 날리고 있는지 표현할 수 있어야 한다
  • http메서드 종류
    • GET(R),POST(C),PUT/PATCH(U),DELETE(D)
    • HEADER(돌아오는 응답데이터 형태 저장)
    • option(preflight) : 현재서버가 특정 메서드 지원하는지 확인
    • trace : 디버깅

request header

  • 목적에 따라 내용이 있을수도 있고 없을수도 있다
  • 현재 요청에 대한 메타데이터
  • 클라이언트가 직접 입력한 정보가 아니고 브라우저가 주는 정보
  • key,value 형태로 전달
    • String으로 전달 - 형변환 필요
  • 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 는 로케일네임
    • 확장자 포함은 안한다! .properties

동기&비동기의 차이

  • 이라는 개념
  • 동기
    • 블럭내에서 자원에 대해 락이 걸린상태에서 처리하는 과정을 동기처리
    • 한국,미국 국기 클릭 -> 윈도우 전체 락걸림 -> 응답데이터 도착 -> 화면 바뀜
    • a,form,location.href 동기요청 발생
  • 비동기
    • 락의 '일부분'만 처리
    • 국기 아래 '안녕', 'hello'만 바뀜
    • AJAX
      • Asynchronous JavaScript and XML

숙제

  • 사칙연산 서버사이드로 만들어보기
  • 피연산자 두개 연산자 4개(enum 구조 적용)
  • model2 적용
profile
HI :)

0개의 댓글