[Web] HTTP & WAS & Servlet

sua_ahn·2023년 11월 14일
0

Web

목록 보기
12/13

HTTP

Hypertext Transfer Protocol
: 하이퍼텍스트 링크를 사용하여 네트워크 장치 간에 정보를 전송하도록 설계된 애플리케이션 계층 프로토콜

Hypertext
: 웹문서와 연결된 글

Protocol
: 통신 시 데이터의 교환 방식을 정의하는 규칙 체계

URL

Uniform Resource Locator
: 네트워크 상에서 자원의 위치를 가리키는 문자열
→ 자원의 위치를 옮기면 해당 URL 사용 불가

URI (Uniform Resource Identifier)
: 자원에 대한 고유 식별자
URN (Uniform Resource Name)
: 자원의 고유 이름

구조

  • Scheme
    : 리소스에 접근하는 데 사용할 프로토콜
  • Host
    : 접근할 대상(서버)의 호스트 명
  • Path: 접근할 대상(서버)의 경로에 대한 상세 정보
    • 쿼리스트링: ? 뒤에 이름과 값으로 쌍을 이루는 요청 파라미터
      → 요청 파라미터가 여러 개이면 &로 연결
    • 프래그먼트: # 뒤에 오는 파라미터
      → HTML 내 해당 ID 위치로 스크롤 이동

HTTP 요청 메서드

: Server에 요청할 수 있는 방법

  1. get 조회 요청

    • 요청을 전송할 때 필요한 데이터를 쿼리스트링을 통해 전송
    • 입력 정보가 url에 적혀있으므로 보안에 취약
    • 캐시 옵션을 지정할 수 있음
    • 길이 제한 있음
    • 바이너리 파일(이미지, 오디오 등) 전송 불가
    • 브라우저 히스토리에 남음
  2. post 생성 요청

    • Body에 데이터를 담아 요청
    • 'safe 하지 않고 idempotent 하지도 않는 메서드'
  • HTTP 메서드는 서버의 상태를 변경하지 않을 때 "안전"하다고 한다.
  • 반복해서 호출할 때 동일한 결과의 형식을 생성하는 작업을 "멱등적"이다고 한다.
  1. put 생성 또는 대체 요청
    : 새로운 리소스를 생성(create)하거나 이미 존재할 경우 대체(replace)

    • 'safe 하지는 않지만 idempotent 한 메서드'
  2. delete 삭제 요청

  3. patch 부분 수정 요청

    • 'Support for PATCH in browsers, servers, and web application frameworks is not universal. IE8, PHP, Tomcat, Django, and lots of other software have missing or broken support for it.'

WAS

Web Application Server
: 웹 기반 프로그램을 제공하는 시스템

→ 크게 웹 서버 기능컨테이너 기능으로 구성 (서버의 기능을 분리하여 처리)

대표적인 WAS : Apache Tomcat

Web Server

: HTTP 프로토콜을 기반으로, 웹 클라이언트로부터 요청을 받고 처리 결과를 응답하는 기능을 담당하며, 정적 콘텐츠 제공 (Presentation logic)

(Web) Container

: 동적 콘텐츠 처리 & 데이터베이스와의 연동 작업 처리 (Business logic)

역할

  • Servlet과 웹 서버의 통신 지원
  • Servlet의 라이프 사이클 관리
  • multi threading 지원
  • 보안 관리
  • JSP 지원

종류

  • Servlet 컨테이너
    : Servlet을 이용해 작성된 프로그램을 실행, 관리해주는 주체

  • JSP 컨테이너
    : Servlet 컨테이너에 Servlet으로의 변환 과정이 추가된 서버 프로그램

  • JSP
    : HTML 내에 JAVA 코드가 삽입되어 있어, 동적인 contents를 생성하는 기술
    → Servlet 클래스의 자바 소스로 변환된 후 compile 되어 실행됨

Servlet

Server + Applet
: servlet class의 구현 규칙을 지킨 자바 프로그램(API)

→ JAVA 언어를 기반으로 HTML 태그가 섞여 있어, 동적인 contents를 생성

Server
: 클라이언트의 요청을 받아 서비스나 데이터를 제공하는 프로그램(소프트웨어) 또는 컴퓨터(하드웨어)
Applet
: 큰 프로그램에 포함되어 작은 기능을 수행하는 프로그램

Servlet으로 요청, 응답

apache와 같은 웹 서버가 사용자로부터 Servlet에 대한 요청을 받으면 Servlet 컨테이너(tomcat)에게 이 요청을 넘긴다. 요청을 넘겨받은 컨테이너는 HTTP Request와 HTTP Response 객체를 만들어 이를 인자로 Servlet doPost()나 doGet() method 중 하나를 호출


*참고사이트
웹서버란
서블릿이란
WAS의 동작
JSP/서블릿

profile
해보자구

0개의 댓글