본문 바로가기

JSP/1. 웹 프로그래밍 기초

JSP - 웹 프로그래밍 기초

1. URL 구성 요소

 

URL 구성 요소

 

프로토콜 : 웹 브라우저가 서버와 내용을 주고 받을 때 사용할 규칙 이름 (http 또는 https 사용)

 

서버 이름 : 웹 페이지를 요청할 서버의 이름 지정, 서버 이름은 kephilab.tistory.com 같은 도메인 이름이나                             180.60.123.45 와 같은 IP주소를 입력할 수 있다.

 

경로 : 웹페이지의 상세 주소 (디렉토리 경로) 를 나타낸다. 웹 페이지마다 다른 경로를 갖는다.

 

쿼리 문자열 : 추가로 서버에 보내는 데이터. 같은 경로의 페이지에 해당하더라도 입력한 값에 따라

                     다른 결과를 보여줘야 할 때 쿼리 문자열을 사용한다. (? 기호 이후 전달 내용 입력)

 

ex) 검색어에 따른 페이지 내용 보여줄 때

 

 


2. 웹 브라우저 / 웹 서버

 

브라우저와 서버 통신 과정

 

서버 프로그램은 클라이언트(브라우저)가 연결할 때 다른 서버 프로그램과 구분할 수 있도록

포트(port)를 사용한다. 서버 프로그램마다 구분되는 포트 번호를 사용한다.

 

http://localhost:8080/index.jsp

 

콜론 ( : ) 다음에 위치한 8080이 포트 번호가 된다.

 

웹 서버가 기본으로 사용하는 포트 번호는 80 이다.

별도로 포트를 지정하지 않으면 80 포트로 연결한다는 의미이다.

 

톰캣은 기본적으로 8080 포트를 사용하도록 설정되어 있다.

따라서 80 포트를 사용하여 연결하려면,

톰캣의 설치 폴더의 conf/server.xml 파일의 8080 포트를 80 값으로 변경한다.

 

 


3. HTML, HTTP

 

HTML (HyperText Markup Language)

 

<! doctype html>, <head>, <body> 등의 구성 요소로 이루어진 웹 페이지이다.

 

 

HTTP (HyperText Transfer Protocol)

 

웹 브라우저와 서버가 HTML 을 비롯한 이미지, 동영상, XML 문서 등 다양한 데이터를 주고 받을 때 사용하는

일종의 규칙이다.

 

즉, HTML 문서(웹 페이지)를 HTTP 라는 방식으로 전송하게 된다.

 

 

HTTP 는 크게 두 가지 관점에서 규칙을 정의하고 있다.

 

요청 규칙 : 웹 브라우저가 웹 서버에 HTML 과 같은 것(자원)을 요청할 때 사용할 데이터 구성 규칙

응답 규칙 : 웹 서버가 웹 브라우저에 HTML 과 같은 것(자원)을 전송할 때 사용할 데이터 구성 규칙

 

요청 데이터는 브라우저가 서버로부터 무엇을 받고 싶은 지 기술한다.

요청 데이터를 받은 서버는 기술한 정보를 이용해서 브라우저가 요청한 데이터를 응답 데이터에 담아 

보낸다.

 

 

HTTP 를 통해 데이터를 주고 받는다.

 

HTTP 요청 / 응답 데이터 구성 요소

 

구성 요소 요청 데이터 응답 데이터
요청 / 응답 줄 GET, POST 같은 HTTP 요청 방식(method)
과 요청하는 자원의 경로를 지정한다.
GET / HTTP/1.1
요청에 대해 200 이나 404 같은 응답 코드를
전송한다.

200 코드 : 요청 정상 처리
HTTP/1.1 200 OK
헤더
(해더이름 : 값)
서버가 응답을 생성하는데 참조할 수 있는
정보 전송

예) 브라우저 종류, 언어 정보 등..
응답에 대한 정보 전송
응답의 몸체가 어떤 데이터인지, 길이는 어떻게 되는지 등에 대한 정보를 담는다.
몸체 정보를 전송할 때 사용한다.
예) 파일 업로드와 같은 기능 사용 시 몸체 영역에 파일을 담아 서버에 전송한다.
브라우저가 요청한 자원의 내용을 담는다.
HTML 문서, 이미지, 파일 데이터 등이 몸체 영역을 통해 전송된다.

 

* 자원 : HTTP 는 HTML 문서 뿐만 아니라 이미지, 자바스크립트 코드, 파일 등의 다양한 데이터 전송!!

 


4. 정적 자원 / 동적 자원

 

톰캣을 비롯한 많은 웹 서버들이 URL의 경로와 일치하는 파일을 읽어와서 응답으로 전송하기 때문에,

파일이 바뀌기 전까지 웹 서버는 항상 같은 내용을 브라우저에 전송한다.

 

정적 자원 : 이미지 파일이나 HTML 파일과 같이 자주 바뀌지 않는 데이터 (정적 페이지)

 

동적 자원 : 조건에 따라 다른 응답 데이터를 전송해야 하는 경우, (쿼리 데이터에 따른 다른 응답)

               특정 조건에 따라 응답 데이터가 달라지는 자원 (동적 페이지)

 


5. JSP 웹 프로그래밍

 

웹 프로그래밍

 

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

 

JSP

 

JavaServer Pages 로 동적 페이지를 작성하는데 사용되는 자바의 표준 기술이다.

HTML, XML, JSON, 바이너리 파일 등을 응답으로 생성할 수 있다. (주로 HTML 응답)

 

WAS (Web Application Server)

 

톰캣 등의 서버 프로그램으로 정적인 HTML 파일, 이미지 파일 제공 하는것과 달리

웹을 위한 연결, 프로그래밍 언어, 데이터 베이스 연동 등 어플리케이션을 구현하는데

필요한 기능을 제공한다.

 

WAS는 브라우저로 부터 요청이 오면 알맞은 프로그램을 찾아 실행하고,

프로그램 실행 결과를 응답으로 전송한다.

 

WAS 동작 과정