본문 바로가기
Web

Web_웹 애플리케이션 개요

by 유서담 2024. 1. 3.

Tomcat

 

  • Web Application Server(WAS)
  • Web Application Program을 실행시켜주는 서버
  • 웹 애플리케이션 전용 서버
  • Servlet/JSP엔진, Servlet/JSP 컨테이너의 역할을 수행하는 서버

 

URL과 웹페이지 vs URL과 웹애플리케이션

URL(Uniform Resource Locator)

  • 자원(웹페이지, 웹애플리케이션, 그림, 동영상, 파일)의 위치를 나타내는 주소
  • 서버에 있는 자원을 요청할 때 클라이언트가 입력하는 주소
  • 일반적으로 웹에서 브라우져(클라이언트)의 주소창에 URL을 입력하면 웹 브라우저가 해당 URL을 서버로 전달한다(웹서버는 URL이 나타내는 주소에 해당 자원이 존재하면 그 자원을 응답을 제공한다)
  • URL 형식
    • https://namu.wiki/w/%EB%A6%AC%EB%B2%84%ED%92%80%20FC
      • http : 프로토콜
      • namu.wiki : 호스트명, 서버명, 도메인네임
      • /w/%EB%A6%AC%EB%B2%84%ED%92%80%20FC : 실제 자원의 위치(웹애플리케이션의 위치) 및 쿼리스트링(서버에 보내는 추가정보)

 

웹페이지와 웹애플리케이션

  • 웹페이지 : 정적자원(정적 HTML 컨텐츠) 제공 / 미리 작성해둔 HTML문서가 응답으로 제공되는 것
  • 웹 애플리케이션 : 동적자원(동적 HTML 컨텐츠) 제공 / 동적 웹 컨텐츠를 제공하는 프로그램(Servlet/JSP)

 

 

웹브라우저와 웹서버

 

웹브라우저

  • 클라이언트의 역할을 수행
  • URL을 서버로 전송해서 웹페이지를 요청하거나 웹애플리케이션의 실행을 요청한다

 

웹 서버

  • 서버의 역할을 수행
  • 클라이언트가 전송한 URL을 분석해서 해당 웹페이지를 응답으로 제공하거나, 해당 웹애플리케이션을 실행해서 동적 컨텐츠를 응답으로 제공한다
  • 웹서버(HTTP프로토콜을 사용하는)는 일반적으로 80포트에 바인딩된다

 

 

HTTP

 

  • HpyerText Transfer Protocol
  • 웹브라우저와 웹서버 간의 메세지 교환시 사용되는 규칙을 정의하고 있다
    • 클라이언트와 서버들은 개별적인 메세지 교환에 의해 통신을 한다
    • 브라우저인 클라이언트에 의해 전송되는 메세지를 요청(Request), 서버에서 응답으로 전송되는 메세지를 응답(Response)라고 한다
    • HTTP는 애플리케이션 계층의 프로토콜이며, 신뢰가능한 전송프로토콜인 TCP나 암호화된 TCP연결인 TLS를 통해 전송된다
    • HTTP는 HTML문서 뿐만이 아니라 이미지, 비디오 혹은 HTML 폼 결과와 같은 내용을 서버로 포스팅하기 위해서도 사용된다
    • HTTP는 HTML문서 뿐만 아니라  이미지, 비디오 혹은 HTML 폼 결과와 같은 내용을 서버로 포스팅하기 위해서도 사용된다

 

HTTP 기반 시스템의 구성요소

  • HTTP는 클라이언트-서버 프로토콜이다
  • 요청의 하나의 개체에 의해 전송된다
  • 각각의 개별요청은 서버로 보내지며, 서버는 요청(request)를 처리하고, 응답(response)라고 불리는 응답을 제공한다

 

클라이언트

  • 보통 사용자의 브라우저
  • 브라우저는 항상 요청을 보내는 개체
  • 웹페이즈를 표시하기 위해, 브라우저는 페이지의 HTML문서를 가져오기 위한 요청을 전송한 뒤 파일 구문을 분석하여 컨텐츠를 화면에 표시한다

 

웹서버

  • 클라이언트의 요청에 대한 응답을 제공하는 서버
  • 서버는 클라이언트의 요청을 처리하고, 적절한 응답을 제공한다

 

 

HTTP의 특징

 

간단하다

  • HTTP는 사람이 읽을 수 있게 간단하게 고안되었다 (메세지를 사람이 읽고 이해가 가능하며 테스트하기도 쉽다)

 

확장에 용이

  • HTTP 헤더는 HTTP를 확장하고 실험하기 쉽게 설계되어 있다
  • 클라이언트와 서버가 새로운 헤더에 대한 간단한 합의만 한다면, 언제든지 새로운 기능을 추가할 수 있다

 

HTTP는 상태가 없고 세션은 있다

  • HTTP는 상태를 저장하지 않는다 (Stateless 프로토콜)
  • HTTP의 핵심은 상태가 없는 것이지만, HTTP 쿠키는 상태가 있는 세션을 만들도록 지원한다

 

 

HTTP 메세지

 

  • HTTP 메세지는 클라이언트와 서버가 서로 교환하는 데이터다
  • 메세지의 타입에는 요청(Request)응답(Response)가 있는데 각각의 특성에 맞는 형식을 갖고 있다

 

요청메세지(Request)

HTTP 요청메세지
요청메세지 구성요소

 

  • 클라이언트(웹브라우저)가 서버로 보내는 메세지
  • 요청메세지 = Request Header + 빈줄 + Request Body
  • 요청헤더부 = 요청라인 + 요청헤더정보로 이루어져 있다

 

 

 

응답메세지(Response)

HTTP 응답메세지
응답메세지 구성요소

 

  • 서버가 클라이언트로 보내는 메세지
  • 응답메세지 = Response Header + 빈줄 + Response Body
  • 응답헤더부 = 응답라인 + 응답헤더정보

 

'Web' 카테고리의 다른 글

프로젝트에서 톰캣설정  (0) 2024.01.26
JDBC 프로젝트 개발순서  (0) 2024.01.26
Web_Servlet  (0) 2024.01.15
Web_GET과 POST, MIME  (1) 2024.01.10
JSP_JSP와 JSP 구성요소 및 내장객체  (1) 2024.01.05