JSP란?

오태호·2021년 11월 16일
1
post-thumbnail

웹 요청 및 전달의 흐름

네이버에 접속하는 것을 예시로 해보겠습니다.
  1. 클라이언트(사용자)는 웹 브라우저를 열고 네이버(https://www.naver.com)를 입력합니다.
    -> 사용자는 url을 통하여 네이버의 화면을 보여달라고 요청을 합니다.
  2. 클라이언트(사용자)의 요청은 서버로 전송됩니다.
  3. 서버에서는 클라이언트(사용자)의 요청을 받고 해당 요청에 맞는 작업을 진행합니다.
  4. 서버는 작업을 완료한 후 클라이언트(사용자)의 웹 브라우저에 응답을 보냅니다.
  5. 서버에서 이러한 응답을 보내면 웹 브라우저가 이를 해석해서 사용자에게 화면을 보여줍니다.

클라이언트(사용자)로부터 서버가 요청을 받으면 서버는 해당 리소스를 응답으로 다시 클라이언트에게 전달합니다. 이렇게 전달된 페이지는 클라이언트(사용자)의 웹 브라우저가 해석해서 클라이언트(사용자)에게 화면을 보여줍니다.


Java Servlet이란?

Java를 이용하여 웹 페이지를 동적으로 웹페이지를 생성하는 서버측 프로그램입니다.

Java Servlet은 Java 코드 안에 HTML을 포함하고 있습니다. Servlet 역시도 class 파일의 한 종류이기 때문에 .java로 확장자명이 잡힙니다. 그런데 Servlet은 프로그램 내에서 HTML을 처리하기 때문에 간단한 태그들을 변경하려고 할 때에도 다시 컴파일을 해줘야 합니다. 이로 인해, 웹 디자이너들은 마음대로 화면 수정을 할 수 없고 HTML 소스들이 Servlet 클래스 내에 존재하기 때문에 프로그래머들은 이러한 HTML 소스들을 관리해줘야 하는 문제들이 생깁니다.
즉, 유지보수가 어렵고 가독성이 떨어진다는 단점이 생깁니다.


JSP란?

JavaServer Pages의 약자로서 HTML에 Java 코드를 삽입하여 웹 서버에서 동적으로 웹 페이지를 생성하는 서버 사이드 스크립트 언어입니다.
이러한 단점을 보완하기 위해 JSP가 등장하였습니다. JSP는 HTML 안에 Java 코드를 삽입하여 HTML 작업과 Java 소스에 대한 작업을 분리할 수 있도록 하였습니다. 이를 통해 웹 디자이너들은 HTML 작업을 하고, 프로그래머는 Java 작업을 할 수 있게 되었습니다. 즉, 유지보수하기도 쉬워지고 가독성 또한 좋아졌습니다.
JSP로 작성한 파일은 이후에 Servlet 파일로 변환이 되는데 이때 Servlet Container가 이 과정을 담당합니다.

JSP의 동작 과정

  1. 클라이언트(사용자)가 웹 브라우저에 URL을 입력합니다.
  2. DNS 서버에서 클라이언트(사용자)가 입력한 URL에 해당하는 IP 주소를 받아옵니다.
  3. 해당 IP 주소의 웹 서버에 JSP 페이지에 대한 요청을 합니다.(request)
  4. 웹 서버에서는 요청 받은 내용을 분석하고 해당 요청을 Servlet Container에게 넘깁니다.
  5. 해당 JSP 파일을 컴파일하여 Servlet 파일을 생성합니다.
  6. 서버에서 Servlet 파일을 실행시킬 수 있게 됨
  7. 해당 Servlet 파일을 실행시켜 이 Servlet 파일 내부에 순수 HTML 코드가 추출이 됩니다.
  8. 이러한 실행 결과를 웹 서버에게 전달해줍니다.
  9. 전달 받은 실행결과를 클라이언트(사용자)의 웹 브라우저에서 인식할 수 있도록 HTML 파일로 변경하여 브라우저에서 실행합니다.
  10. 해당 페이지가 웹 브라우저에 나타납니다.

DNS

DNS란?

특정 컴퓨터 또는 네트워크로 연결된 임의의 장치의 주소를 찾기 위해, 도메인 이름을 숫자로 된 IP 주소로 변환해줍니다.
  • Domain Name System의 약자입니다.
  • 도메인 이름을 호스트의 네트워크 주소로 바꿔주거나 그 반대의 변환을 수행합니다.

DNS의 구조

  1. Recursive DNS Server
    • 인터넷 사용자가 가장 먼저 접근하는 DNS 서버입니다.
    • 한 번 거친 후 얻은 데이터를 일정 시간(Time To Live(TTL))동안 캐시라는 형태로 저장해두는 서버입니다.
  2. Root DNS Server
    • Recursive DNS Server의 캐시에 존재하지 않는 도메인 이름을 IP 주소로 변경할 때, Recursive DNS Server가 DNS 레코드를 요청하는 과정의 첫 단계입니다.
    • 도메인 이름을 포함한 Recursive DNS Server의 쿼리를 수용합니다.
    • 도메인 확장자(.com, .org, .net 등등)에 따라 TLD DNS Server에 보내 응답합니다.
  3. TLD(Top Level Domain) DNS Server
    • .com, .net과 같은 도메인 확장자를 공유하는 모든 도메인 이름의 정보를 유지합니다.
    • 해당 이름의 TLD DNS Server는 해당 도메인의 Authoritative DNS Server를 가리켜 응답합니다.
  4. Authoritative DNS Server
    • 실제 개인 도메인과 IP 주소 사이의 관계가 관리되고 있는 서버입니다.
    • 도메인의 IP 주소를 Recursive DNS Server에 제공하거나 별칭 도메인을 제공하며, 이 때 Recursive DNS Server는 Authoritative DNS Server에서 레코드를 얻기 위해 새로운 DNS 조회를 수행합니다.
profile
자바, 웹 개발을 열심히 공부하고 있습니다!

0개의 댓글