관심쟁이 영호

[#2 Spring Boot 정주행] 웹 기본 구조, 서블릿, HTTP 본문

Bank-End/Spring Boot

[#2 Spring Boot 정주행] 웹 기본 구조, 서블릿, HTTP

관심쟁이 영호 2021. 9. 9. 17:03
반응형

이번에는 웹에서 이루어지는 상호 작용을 전반적으로 살펴보고

몇 가지의 기술 들을 살펴볼 것이다.

 


목차

  • 웹 기본 구조
  • 서블릿
  • HTTP

 


웹 기본 구조

 

사용자와 서버로 나누어 생각해보자!

 

우리가 네이버에서 "뉴스" 버튼을 클릭하면 뉴스 화면으로 이동한다.

실제로 내부에서는 어떻게 이루어질까??

다음을 보면서 이해해보자!

 

  1. 사용자가 "뉴스" 버튼을 클릭한다.
  2. 사용자의 웹 브라우저가 요청 메시지를 보낸다. (ex. naver.com/news)
  3. naver.com가 DNS를 거쳐 naver의 ip주소로 변경되어 보내진다. (ex. 192.123.123/news)
  4. 192.123.123/news 정보가 웹 애플리케이션 서버를 거쳐 http 메시지로 변경된다.
  5. naver의 서블릿 컨테이너로 해당 http 메세지가 도착한다.
  6. naver의 서블릿 컨테이너는 http 메세지를 읽고 그에 해당하는 내용을 사용자의 웹브라우저에게 돌려준다.
  7. 사용자의 웹브라우저는 해당 내용을 읽고 사용자가 이용할 수 있게 변환해서 보여준다.

HTTP

HTTP는 Protocol이다. 다음 포스팅에 더 상세히 살펴볼 예정이다.

이번에는 가볍게만 다루자!

 

컴퓨터와 컴퓨터간에 정보를 주고받는다.

위의 예시에서 사용자가 뉴스가 보고 싶어서 뉴스 버튼을 클릭했다.

 

그때 생성되는 http를 보면

POST /save HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
username=kim&age=20

 

위와 같이 생성된다.

 

더 많은 정보를 담을 수 있다.

각각의 내용은 정보를 주고받으면서 서로 필요한 내용을 가지고 있다.

 


서블릿

서블릿은 위키백과에서 다음과 같이 설명한다.

"자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버 측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다."라고 한다.

위의 예시에서 보면

 

웹 애플리케이션이 생성한 http 메시지를 읽고 그에 해당하는 동작을 수행하는 naver 측의 java 프로그램이다!

 

서블릿에는 여러 가지의 기능이 있다.

 

HTTP를 자동으로 파싱 해준다.

java로 코드를 짠다고 생각하자. 위와 같은 http가 도착하였다.

POST인지 GET인지 for문을 돌려서 contains 함수를 통해 확인해야 한다.

Content-Type은 무엇인지 확인해야 한다. 귀찮다..

 

자바 서블릿에서는 HTTP 메시지가 도착하면 알아서 파싱을 해준다. 그래서 우리는 getContentType()과 같이 메서드 호출만 하여 해당 요청 내용을 확인할 수 있다.

 

또한 응답 메시지도 HTTP 형식으로 자동으로 만들어준다!!

 

다음 글은 서블릿을 직접 사용해보자!

 

 

 

 

 

 

300x250
Comments