본문 바로가기

교육/Servlet&JSP

[Servlet&JSP] 기본 배경 지식

1. 자바 개발 플랫폼

    • Java SE(Standard Edition)
      • 데스크탑, 서버, 임베디드
        • JDK(Java Development Kit)
          • JVM(Jave Virtual Machine)과 컴파일러, 디버거, 어플개발 도구들 포함
          • JRE + Tool, Tool API들
        • JRE(Java Runtime Environment)
          • JVM과 핵심적인 클래스들과 지원파일만 포함
    • Java EE(Enterprise Edition)
      • SE에서 웹 서버 역할 추가
      • 컨테이너등을 표준화
      • JSP, Servlet, EJB, JDBC, JNDI, JTA, EJB등등
      • WAS(Web Application Server)
        • JAVA EE 스펙에 따라 제품으로 구현
        • 톰캣
          • 오픈소스
          • 아파치
        • 제우스
          • 한국제품
          • 티맥스 소프트
    • Java ME(Micro Edition)
      • 모바일, 셋탑박스, PDA등 
      • 무선 사용 시 EE와 쉽게 통합 가능
      • JVM을 경량화한 KVM, CardVM기술 지원

2. 웹의 자바기술

    • Servlet
      • java언어로 구현된 서버 프로그램
      • 클라이언트가 웹브라우저를 통해 요청시 -> 서버에서 실행 -> 결과값을 클라이언트로 전달
      • 여러 API를 통해 클라이언트 요청과 서버의 응답을 처리 가능
      • Controller페이지 구현에 사용
        • Controller
          • View에서 받은 요청을 처리하는 페이지
    • JSP
      • 서블릿과 같은 기능
        • 차이점
          • HTML안에서 코드로 구현 가능
          • 이는 서블릿처럼 java코드로 변환되어 들어감(나중에 JSP정리할 때 자세하게 기술)
          • 내부적으로 구현해주는 코드로 인해, 변수 선언 및 초기화 작업 없이 바로 실행할 수 있음 -> 코드의 간결화
          • View 페이지 구현에 사용
            • View 
              • 클라이언트가 보는 화면
              • 클라이언트로부터 요청받는 화면
              • 서버의 결과를 보여주는 페이지
3. 컨테이너
    • 서블릿 컨테이터
      • 서블릿을 실행하기 위한 환경 구성
        • 자바
        • 웹서버
        • 서블릿 컨테이너
      • 클라이언트의 요청에 따라 서블릿을 수행
      • 서블릿 엔진이라고도 함
      • 버전에 따라 API가 달라질 수는 있음
    • JSP 컨테이너
      • JSP를 서블릿으로 변환함
      • 서블릿으로 구현됨
      • JSP 실행하기 위한 환경 구성
        • 자바
        • 웹서버
        • 서블릿 컨테이너
        • JSP 컨테이너
4. HTTP
    • HTTP(Hyper Text Transfer Protocol)
      • Application Layer에 해당하는 프로토콜
      • Transport Layer에서 TCP를 사용하여 웹 브라우저와 웹 서버간에 통신하는 프로토콜
      • 클라이언트가 웹서버로 요청->웹서버가 클라이언트에게 응답정보 전달
    • HTTP 특징
      • 무연결(connectionless)
        • 연결을 유지하지 않음
        • 요청단위로 작업
        • 이전 요청과는 상관없이 작업
        • 따라서 요청단위로 새로운 연결을 처리해야함
      • 무상태(stateless)
        • 상태정보가 유지되지 않음
          • 연결단위로 처리하기 때문
        • 만약 이전 요청의 값을 사용하고 싶을 때
          • 서버나 클라이언트 측에 정보 저장
      • 요청 응답(request, response)
        • request-reply라고도 함
    • HTTP 요청정보
      • 헤더 구성
        • Request-Line
          • 첫번째 줄
            • Method
              • GET
                • header에 포함되어 전달
                • cache가능
                • ?뒤에 정보 전달 가능
                • 하지만 header길이가 한정되어 있어 전달 문자열의 크기 제한이 있음
                • 조회 서비스에 많이 사용
              • POST
                • body에 포함되어 전달
                • 클라이언트쪽에서 인코딩, 서버측에서 디코딩하므로 GET보단 느림
                • 회원가입 요청 서비스에 많이 사용
              • PUT
                • 파일 업로드에 많이 사용
                • 일반적으로 서버의 리소스를 수정할때 많이 사용
                • 회원 정보 수정 요청 서비스에 많이 사용
              • DELETE
                • 서버의 리소스를 삭제
                • 회원 삭제 서비스에 많이 사용
            • URI(Uniform Resource Identifier)
              • http://1.2.3.4:8080/user/index.html이란 주소가 있다면, 포트번호 다음인 /user/index.html이 URI이다
            • HTTP Version
              • 요청 시 사용한 http 버전 정보
        • 공백행
        • name : content
    • HTTP 응답 정보
      • HTTP버전
      • 상태코드
        • 200이 성공
        • 나머지는 에러코드
      • 상태코드 설명


'교육 > Servlet&JSP' 카테고리의 다른 글

[JSP] 태그  (0) 2018.01.21
[Servlet] 필터,리스너, 에러처리  (0) 2018.01.21
[Servlet]상태정보 유지  (0) 2018.01.21
[Servlet] 중요 파일들 의미와 위치  (0) 2018.01.21
[Servlet&JSP] 개발 환경 구축  (0) 2018.01.21