본문 바로가기

JSP

웹프로그래밍 기초(1) - URL, 정적페이지 동적페이지란, HTML과 HTTP, JSP

URL의 주요 구성 요소

https://rimkongs.tistory.com/manage/newpost/?type=post

① 프로토콜 - https, http -> 웹 브라우저가 서버와 내용을 주고받을 때 사용할 규칙 이름이다. 

② 서버이름 - "rimkongs.tistory.com" 과 같은 도메인 이름이나 180.70.134.239와 같은 IP 주소

③ 경로 - 위 예에서 "manage/newpost" 부분. 웹 페이지의 상세 주소에 해당한다. 즉, 웹 페이지마다 다른 경로를 갖는다.

④ 쿼리 문자열 - "type=post" 부분. 추가로 서버에 보내는 데이터에 해당한다. 같은 경로라 하더라도 입력한 값에 따라 다른 결과를 보여줘야 할 때 쿼리 문자열을 사용한다.

 

 

웹브라우저와 웹서버

 

https://sleepyeyes.tistory.com/13

웹 브라우저와 웹 서버는 다른 컴퓨터에 위치한다.

웹 브라우저가 웹 서버에 연결하려면, 웹 서버가 실행중인 컴퓨터의 주소를 알아야 하는데, 이 주소를 IP 주소라고 부른다. 웹 브라우저에서 URL을 입력하면, 웹 브라우저는 1번 과정처럼 도메인 이름에 해당하는 IP 주소를 DNS에 요청하고, DNS는 2번 과정처럼 IP 주소를 응답으로 제공한다.

 

한 개의 컴퓨터에는 웹 서버 프로그램만 실행되는 것이 아니다. 웹 서버 프로그램과 함께 동영상을 제공해주는 스트리밍 서버 프로그램도 실행될 수 있고, 채팅 서비스를 위한 채팅 서버 프로그램이 실행될 수도 있다.

IP 주소는 연결할 컴퓨터를 구분하는데 사용되기 때문에, IP 주소만으로는 컴퓨터의 어떤 서버 프로그램을 실행할지 알 수 없다. 이런 이유로 각 서버 프로그램은 클라이언트가 연결할 때 다른 서버 프로그램과 구분할 수 있도록 포트라는 것을 사용한다. 서버 프로그램마다 구분되는 포트 번호를 사용하며, 클라이언트는 IP 주소와 함께 포트 번호를 사용해서 원하는 서버 프로그램에 연결하게 된다.

 

"http://localhost:8080/index.jsp" 에서 콜론 뒤에 위치한 8080이 포트 번호가 된다.

 

웹 서버가 사용하는 기본 포트 번호는 80이다. 이는 URL에서 프로토콜이 http인 경우 별도로 포트를 지정하지 않으면 80 포트로 연결한다는 것을 뜻한다. 즉, "http://localhost/"라는 URL을 사용하면 웹 브라우저는 80 포트를 이용해서 서버에 연결한다.

 

톰캣은 기본적으로 8080포트를 사용하도록 설정되어 있기 때문에, URL에 포트 번호를 붙여 톰캣 서버를 테스트 해야 한다.

 

톰캣의 설정을 변경하면 8080 포트 대신에 웹 서버의 기본 포트인 80 포트를 사용할 수 있다. 톰캣을 설치한 폴더의 conf/server.xml 파일을 보면 8080 포트 번호를 지정하는 설정 부분을 찾을 수 있을 것이다. 이 설정 값을 80으로 바꿔주면 톰캣을 80포트로 실행할 수 있다.

 

 

 

HTML과 HTTP

 

위 코드는 HTML(HyperText Markup Language) 라고 불리는 표준을 이용해서 작성한 것이다.

웹 서버는 웹 브라우저가 요청한 URL에 해당하는 HTML 문서를 전송하는데, HTML 문서를 받은 웹 브라우저는 정해진 규칙에 따라 HTML 문서를 분석해서 알맞은 화면을 생성한다. 이 과정을 렌더링이라고 표현한다

 

HTTP(HyperText Transfer Protocol) 은 웹 브라우저와 웹 서버가 HTML을 비롯해 이미지, 동영상, XML 문서 등 다양한 데이터를 주고받을 때 사용하는 일종의 규칙이다.

 

 

 

정적페이지와 동적페이지

① 정적페이지

톰캣을 포함해 많은 웹 서버들이 URL의 경로와 일치하는 파일을 읽어와 응답으로 전송한다. 이는 파일이 바뀌기 전까지 웹 서버는 항상 같은 내용을 웹 브라우저에 전송한다는 뜻이다. 이렇게 고정된 결과가 출력된다고 해서 정적 페이지라고 표현한다. 보통 이미지 파일이나 HTML 파일과 같이 자주 바뀌지 않는 것들을 정적 페이지로 제공한다.

 

② 동적페이지

정적 페이지와 달리, 파일(즉, 코드)을 바꾸지 않아도 조건에 따라 다른 응답 데이터를 전송하는 경우도 있다. 쿼리 문자열에 따라 다른 검색 결과를 보여주는 경우이다. 이렇게 특정 조건에 따라 응답 데이터가 달라지는 자원을 동적 페이지라고 부른다. JSP, PHP,  ASP.net 등 많은 웹 관련 기술들이 바로 동적 페이지를 만드는 데 사용되는 프로그래밍 기술이다.

 

 

 

웹 프로그래밍과 JSP

① 웹 프로그래밍이란

간단히 말하면 웹 서버가 웹 브라우저에 응답으로 전송할 데이터를 생성해주는 프로그램을 작성하는 것이다.

 

② JSP란 

JSP는 동적 페이지를 작성하는데 사용되는 자바의 표준 기술로서 HTML 응답을 생성하는데 필요한 기능을 제공하고 있다. HTML 응답뿐만 아니라 XML, JSON, 바이너리 파일 등도 응답으로 생성할 수 있지만, 주로 HTML 응답을 생성하는 목적으로 JSP를 사용한다.

 

JSP를 이용해서 만든 프로그램을 실행하려면 톰캣, 제티, JBoss EAP와 같은 서버 프로그램이 필요하다.

 

③ WAS

단순 웹 서버가 정적인 HTML, 이미지를 제공하는 것과 달리 이들 서버는 웹을 위한 연결, 프로그래밍 언어, 데이터베이스 연동과 같이 어플리케이션을 구현하는데 필요한 기능을 제공하고 있다.

이런 이유로 이들 서버 프로그램을 웹 어플리케이션 서버(Web Application Server)라고 부른다.