jsp

치로·2024년 8월 30일

1. 웹 서버 프로그램이란?

2. CS 모델

  • Client Server 모델

  • 간단한 구조로 되어 있는 대부분 server에서 데이터를 처리하고 클라이언트는 UI를 담당

  • 구조가 간단하여 속도가 좋은 특징이 있으나 확장성은 조금 떨어진다.

    2-1. CS모델 장점

  • 구조가 간단하여 속도가 빠르다

  • 대부분 C/C++ 언어로 작성되므로 속도가 좋다

    2-2. CS모델 단점

  • 구조상 확장의 어려움이 있다

  • Client 프로그램을 다운로드 받아 PC에 설치해야하는 배포의 번거로움

  • 버그를 수정하여도 배포하기 어려움

  • 특정 OS 및 하드웨어에 종속적

    2-3. socket통신

  • 소켓이란 두 프로그램이 서로 데이터를 주고 받을 수 있다.

  • 서버와 클라언트 양방향 연결이 이루어지는 통신

  • 클라이언트도 서버로 요청을 보낼 수 있고 서버도 클라이언트로 요청을 보낼 수 있는 통신

  • 클라이언트와 서버 양쪽에서 서로에게 데이터 전달을 하는 방식의 양방향 통신

  • 실시간 동영상 스트리밍 서비스나 온라인 게임, 채팅과 같은 경우에 자주 사용된다.

3. web 등장

  • CS환경이 배포가 어렵다는 단점을 보완한 모델

  • 브라우저만 있으면 어디서든 쉽게 접근 가능

    3-1. 장점

  • OS와 브라우저의 제품에 상관없이 어디서든 동작 가능

  • 브라우저만 있으면 어디서든 쉽게 접근 가능

    3-2. 단점

  • 성능이 떨어지고, 속도가 느림. 화면의 복잡도가 증가하면 더더욱 성능이 떨어짐

  • 너무 다양한 기술이 접목되어 관리하기 어려움

4. HTTP통신

  • HTTP란 HyperText Transfer Protocol의 약자로 HTML 파일을 전송하는 프로토콜이라는 의미
  • 웹 브라우저에서 통신이 일어나며, 초기에는 HTML 파일을 전송하려는 목적으로 만들어졌으나, 현재는 JSON, Image 파일 등 또한 전송한다.
  • 클라이언트에서 서버로 요청을 보내고 서버가 응답하는 방식으로 통신이 이루어진다. 응답에는
    클라이언트의 요청에 따른 결과를 반환
  • 클라언트의 요청이 있을 때 서버가 응답하는 단방향 통신
  • 실시간 연결이 아니고, 응답이 필요한 경우에만 server와 연결을 맺어 요청을 보내는 상황에 유용

5. 정리

  • 자주 데이터를 주고 받는 환경이 아닌 경우 HTTP통신을 통해 받는 것이 유리
  • 자주 데이터를 주고 받아야 하는 환경에서는 소켓 통신이 유리하다
  • HTTP통신은 사용자가 서버에 요청을 보내는 단방향 통신, 소켓통신은 양방향 통신

6. 통신 프로토콜

  • 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는
    양식과 규칙의 체계이다.
  • 통신 프로토콜은 신호 체계, 인증, 그리고 오류 감지 및 수정 기능을 포함할 수 있다
  • 프로토콜은 형식, 의미론, 그리고 통신의 동기과정 등을 정의하기는 하지만 구현되는 방법은 독립적

7. 프로토콜의 예시

  • http : Hyper Text Transfer Protocol
  • https : Hyper Text Transfer Protocol Secure
  • FTP : File Transfer Protocol
  • SFTP : Secure File Transfer Protocol
  • Telnet : Terminal NETwork
  • SMTP : Simple Mail Transfer Protocol
  • SSH : Secure Shell
  • SSL : Secure Socket Layer
  • SOAP : Simple Object Access Protocol

8. 정적 웹 페이지(static web pages)

  • 정적 웹 페이지는 언제 접속해도 같은 응답을 보내준다. 일단 HTML, CSS, JS파일 등이 서버에 업로드 되면 개발자가 수정하기 전까지 매번 같은 파일을 브라우저에 건네준다.
  • 웹 서버가 정적 웹페이지에대한 요청을 받은 경우 서버는 추가적인 처리 과정 없이 클라이언트에게 응답을 보냅니다.
  • 예를들어 회사나 개인의 소개 페이지가 정적 웹 페이지의 좋은 예시이다.

9. 동적 웹 페이지(dynamic web pages)

  • 웹 서버가 동적 웹 페이지에 대한 요청을 받은 경우 서버는 추가적인 처리 과정 이후 클라이언트에게 응답을 보냅니다
  • 동적 페이지는 방무자와 상호작용하기 때문에 페이지 내용은 그때그때 다릅니다.
  • 댓글, 날씨, 주가 정보 등과 같이 정보 변경이 찾은 곳에 많이 사용된다.
  • 동적페이지란 요청에 대해서 각각 다른 내용을 보여준다.
  • 서버는 사용자에 맞는 HTML문서를 생성하여 사용자에게 응답하게된다.

10. 웹 호스팅이란

10-1. 웹 호스팅이란?

  • 개발자가 개발한 홈페이지(웹사이트)를 올려놓을 인터넷 상의 공간을 임대해 주는 서비스
  • 이 때 필요한 서비스가 웹호스팅 서비스
  • 웹 서버의 일부 공간을 할당 받아, 그 곳에 홈페이지 자료를 올려놓으면 누구나 인터넷상으로 해당 페이지를 볼 수 있음
  • 웹 호스팅 : 다세대가 거주하는 빌라(웹서버)의 방 한 칸(홈페이지가 들어갈 공간)을 임대하여 사용하는 서비스

11. 도메인

  • 도메인 = 건물명
  • 건물을 짓고 건물명을 붙인다
  • 서울특별시 송파구 잠실6동 올리픽로 300 = 롯데타워
  • 125.209.222.142 = www.naver.com
  • 실제 주소가 아닌 가고자 하는 위치에 이름을 붙이는게 편함(= 인터넷 상에서 이 역할을 하는게 도메인)

12. 인터넷 주소의 체계

http://www.naver.com:80/news/index.html
http://localhost:8080/hellojsp/index.jsp
  • 프로토콜 : 통신 방식의 종류
    http:// (웹), ftp:// (파일전송), talnet:// (터미널 통신)
  • 도메인 : 특정 컴퓨터에 접속하기 위한 주소
  • 도메인 등록 기관을 통하여 일정 기간 동안 사용료를 지불하고 임대해야함
  • localhost : 모든 컴퓨터가 "자기 자신"을 가리키는 특수 도메인
  • 127.0.0.1 = localhost
  • 포트 번호 : 특정 컴퓨터에 통신을 위해 열려있는 문
  • 모든 컴퓨터는 0~65535까지의 포트 번호를 가지고 있음
  • 이 포트 번호를 통해서 통신이 진행될 수 있으며, 기본적으로 모든 포트 번호는 차단되어 있음(방화벽 : 포트를 차단하는 역할하는 프로그램)

13. Servlet(서블릿)

  • 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술
  • 서블릿 : 자바를 사용하여 웹을 만들기 위해 필요한 기술
  • 클라이언트가 요청하면 그 결과를 다시 전송해 주어야하는데, 이러한 역할을 하는 자바 프로그램
  • 사용자가 URL을 입력하면 HTTP Request가 Servlet Container로 전송
  • 요청을 전송 받은 Servlet Container는 HttpServletRequest, HttpServletResponse 객체를 생성
  • web.xml을 기반으로 사용자가 요청한 URL이 어느 서블릿에 대한 요청인지 찾는다
  • 해당 서블릿에서 service 메소드를 호출한 후 클라이언트의 GET, POST 여부에 따라 doGet(), doPose() 호출
  • doGet(), doPose() 메소드는 동적 페이지를 생성한 후 HttpServletResponse 객체에 응답을 보냄
  • 응답이 끝나면 HttpServletRequest, HttpServletResponse 두 객체를 소멸시킴

0개의 댓글