본문 바로가기

컴퓨터공부/JSP

스프링 입문을 위한 자바 객체 지향의 원리와 이해 (4)[책리뷰 & Book review]

by Life & study 2024. 1. 27.
반응형

스프링 입문을 위한 자바 객체 지향의 원리와 이해 (4)

[책리뷰 & Book review]

TCP/IP 는 DNS와 도메인의 통신이다.

TCP/IP와 JSP는 각기 다른 영역에서 사용되는 개념이지만, 웹 개발에서 함께 동작하며 사용자의 요청에 응답하는 방식으로 통신합니다.

TCP/IP: 이는 인터넷 프로토콜 스위트의 핵심 프로토콜입니다. 

TCP(Transmission Control Protocol)는 데이터의 논리적인 전송을 담당하고,

 IP(Internet Protocol)는 데이터의 물리적인 전송을 담당합니다.

 웹 브라우저가 웹 서버에 요청을 보낼 때, 이 요청은 TCP/IP 프로토콜을 사용하여 전송됩니다.


JSP(Java Server Pages): 이는 자바를 기반으로 하는 서버 사이드 스크립트 언어입니다.

 JSP는 웹 서버에서 실행되며, 동적인 웹 페이지를 생성하기 위해 사용됩니다. 사용자의 웹 요청이 들어오면, 

JSP는 이를 처리하고 동적인 HTML을 생성하여 응답으로 전송합니다.
이 두 개념이 어떻게 상호 작용하는지에 대한 간단한 예시는 아래와 같습니다:

사용자가 웹 브라우저에서 http://www.example.com/index.jsp라는 URL을 입력하고 엔터를 누릅니다.
웹 브라우저는 이 URL에 대한 HTTP 요청을 생성하고, 이를 TCP/IP 프로토콜을 통해 웹 서버에 전송합니다.
웹 서버는 이 요청을 수신하고, 해당하는 index.jsp 파일을 찾습니다.

 

JSP 엔진은 index.jsp 파일을 실행하여 동적인 HTML을 생성합니다.
생성된 HTML은 HTTP 응답으로 사용자의 웹 브라우저에 전송됩니다.
웹 브라우저는 이 HTML을 렌더링 하여 사용자에게 보여줍니다.
이러한 과정은 아래와 같은 JSP 코드를 통해 이루어집니다:

java

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Example JSP Page</title>
</head>
<body>
<%
    String name = request.getParameter("name");
    if(name == null || name.isEmpty()) {
        name = "Guest";
    }
%>
<h1>Hello, <%= name %>!</h1>
</body>
</html>


이 코드는 웹 브라우저에서 전송된 요청의 name 파라미터를 읽어, 이를 이용해 HTML을 동적으로 생성합니다. 

만약 name 파라미터가 없거나 비어있다면, 기본적으로 "Guest"라는 값을 사용합니다.

이처럼, TCP/IP와 JSP는 웹 통신에서 각각의 역할을 하며 서로 상호작용하게 됩니다.

 TCP/IP는 신뢰성 있는 통신을 제공하고, JSP는 이 통신을 통해 전송된 요청에 따라 동적인 웹 페이지를 생성합니다.




 

 

jsp 서버 통신의 원리

 

 

 

 

 

 

JSP에서 Request와 Response 

 

JSP에서 Request와 Response 객체는 HTTP 요청과 응답을 처리하는 데 중요한 역할을 합니다.

Request 객체 : 클라이언트(보통 웹 브라우저)에서 서버로 보내는 요청 정보를 포함하고 있습니다. 

이 정보에는 HTTP 메서드(GET, POST 등), 요청 헤더, 쿼리 매개변수, 폼 데이터 등이 포함될 수 있습니다.


Response 객체 : 서버에서 클라이언트로 보내는 응답 정보를 포함하고 있습니다. 이 정보에는 HTTP 상태 코드(200, 404 등), 응답 헤더, 쿠키 정보, 응답 본문 등이 포함될 수 있습니다.


JSP에서는 이 두 객체를 이용해 클라이언트의 요청을 처리하고 적절한 응답을 생성합니다.

아래는 간단한 JSP 코드 예시입니다:

JSP

<%@ page import="java.util.*" %>
<%
    String clientName = request.getParameter("name");
    if(clientName == null || clientName.isEmpty()) {
        clientName = "Guest";
    }

    response.setContentType("text/html");
    response.setCharacterEncoding("UTF-8");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Welcome Page</title>
</head>
<body>
<h1>Hello, <%= clientName %>!</h1>
<p>Today is <%= new Date() %>.</p>
</body>
</html>


이 코드에서는 먼저 Request 객체를 통해 클라이언트에서 전송된 name 파라미터를 가져옵니다. 

이 파라미터가 없거나 비어 있다면 기본값인 'Guest'를 사용합니다.

그다음, Response 객체를 통해 응답의 콘텐츠 타입과 문자 인코딩을 설정합니다. 

이 경우, 응답 본문은 HTML이며 문자 인코딩은 'UTF-8'입니다.

마지막으로, 동적으로 생성된 HTML을 응답 본문으로 보냅니다. 

이 HTML에는 클라이언트의 이름과 현재 날짜가 포함되어 있습니다.

이러한 방식으로, JSP는 Request와 Response 객체를 사용하여 클라이언트의 요청을 처리하고 적절한 응답을 생성합니다. 이를 통해 클라이언트와 서버 간의 웹 통신이 이루어집니다.

 

 

 

 

 

 

 

 

 Apache HTTP Serve와 Tomcat 은 무엇인가?

 


"아차피"라는 말은 Apache HTTP Server를 지칭하시는 것 같습니다. 

Apache HTTP Server와 Tomcat은 웹 서버와 애플리케이션 서버라는 두 가지 다른 종류의 서버로, 각각의 역할과 작동 방식이 다릅니다.

Apache HTTP Server: 이는 웹 서버로서, 클라이언트의 요청을 받아 정적인 웹 페이지(HTML, CSS, JavaScript, 이미지 등)를 제공합니다. 클라이언트가 URL을 요청하면 Apache는 해당 파일을 찾아 응답으로 전송합니다.

 


Tomcat: 이는 애플리케이션 서버로서, 주로 Java Servlet이나 JSP와 같은 동적인 웹 페이지를 처리합니다. 클라이언트의 요청이 들어오면 Tomcat은 해당 요청을 처리하는 Servlet이나 JSP를 실행하고, 그 결과를 응답으로 전송합니다.

 


이 두 서버는 종종 함께 사용되어, Apache가 정적인 웹 페이지를 처리하고 Tomcat이 동적인 웹 페이지를 처리하는 방식으로 웹 서비스를 제공합니다.

다음은 이러한 작동 방식을 보여주는 간단한 예시입니다:

클라이언트가 http://www.example.com/index.html이라는 URL을 요청합니다.
Apache HTTP Server는 이 요청을 받아 index.html이라는 파일을 찾습니다.
Apache는 index.html 파일의 내용을 응답으로 전송합니다.
클라이언트는 이 응답을 받아 웹 브라우저에 렌더링 합니다.
또는

클라이언트가 http://www.example.com/servlet/Hello이라는 URL을 요청합니다.
Tomcat은 이 요청을 받아 Hello라는 이름의 Servlet을 실행합니다.
Servlet은 요청을 처리하고, 그 결과를 HTML 형태로 생성합니다.
Tomcat은 이 HTML을 응답으로 전송합니다.
클라이언트는 이 응답을 받아 웹 브라우저에 렌더링 합니다.


이처럼, Apache HTTP Server와 Tomcat은 각각의 역할에 따라 클라이언트의 요청을 처리하고 응답을 생성합니다.

 이를 통해 웹 서비스는 정적인 웹 페이지와 동적인 웹 페이지를 함께 제공할 수 있습니다.



 

 

 

 

 

JSP 동적웹페이지의 동작원리

 

적 웹 페이지는 사용자의 요청에 따라 내용이 변경되는 웹 페이지를 의미합니다. 

서버는 클라이언트의 요청을 실시간으로 해석하고, 데이터베이스에서 필요한 정보를 검색하거나 계산을 수행하는 등의 처리를 거친 후, 그 결과를 HTML 문서로 변환하여 응답으로 보냅니다. 

이 과정을 통해 동일한 URL이지만 사용자의 요청에 따라 다른 내용의 웹 페이지를 제공할 수 있습니다.

아래는 동적 웹 페이지의 동작 방식에 대한 상세한 설명과 텍스트 그림입니다:

클라이언트가 웹 페이지 요청: 클라이언트(일반적으로 웹 브라우저)는 특정 URL에 대한 HTTP 요청을 생성하고, 이를 웹 서버에 전송합니다. 이 요청에는 사용자가 입력한 데이터나 선택한 옵션 등의 정보가 포함될 수 있습니다.

클라이언트  ---------------->  서버
(HTTP 요청 전송)


웹 서버가 요청을 분석하여 처리: 웹 서버는 요청을 해석하여 필요한 처리를 수행합니다. 이 처리는 데이터베이스에서 데이터를 검색하거나, 서버 측 스크립트를 실행하는 등의 작업을 포함할 수 있습니다.

클라이언트  <---------------->  서버
                           (요청 분석 및 처리)


결과를 HTML 문서로 생성: 웹 서버는 처리 결과를 바탕으로 HTML 문서를 생성합니다. 

이 HTML 문서는 동적으로 생성되므로, 요청에 따라 그 내용이 달라질 수 있습니다.

클라이언트  <---------------->  서버
                           (HTML 문서 생성)


요청에 맞게 정제된 HTML 문서를 전달: 웹 서버는 생성한 HTML 문서를 HTTP 응답으로 클라이언트에 전송합니다.

클라이언트  <----------------  서버
          (HTML 문서를 응답으로 받음)


웹 브라우저가 HTML을 보여줌: 클라이언트는 받은 HTML 문서를 웹 브라우저에 렌더링 하여 사용자에게 보여줍니다.

클라이언트 (웹 브라우저)
(HTML 문서 렌더링)


이처럼, 동적 웹 페이지는 사용자의 요청에 따라 그 내용이 동적으로 변하는 웹 페이지를 제공하는 방식으로 동작합니다. 이를 통해 사용자 맞춤형의 웹 서비스를 제공할 수 있습니다.

 

 

 

 

#개발자취업 #개발자기초 #개발자 #개발자분야 #개발자분류 #개발자종류 #it개발자 #서버개발자 #개발자성장 #신입개발자 #ios개발자 #개발자노트북 #개발자 되는 법 #개발 #앱개발 #웹개발 #개발분야 #it개발 #개발공부 #코딩상식 #개발공부 #개발초보

 

#개발자취업 #개발자면접 #개발자채용 #백엔드개발자 #백엔드개발자 #백엔드개발자취업 #백엔드개발 #프런트엔드개발자 #개발자상담 #백엔드 #개발자 #앱개발자 #웹개발자 #개발자팁 #앱개발자 #백엔드취업 #백엔드공부 #백엔드강의 #백엔드독학

 

#전산직면접 #면접 #면접팁 #면접관 #공공기관전산직면접 #공사면접 #면접질문 #면접할 말 #면접준비 #면접준비 #면접답변 #면접질문 #면접기출 #전화면접 #면접복장 #면접답변 #면접꿀팁 #모의면접 #면접후기 #롯데면접 #면접후기 #임원면접 #최종면접 #면접꿀팁

 

 

 

 

 

댓글