SlideShare a Scribd company logo
Servlets & JSP
1장
What is Server
A. 클라이언트는 요청하고, 서버는 제공한다.
What is Client
사용자가 웹 페이지의 링크를 클릭
요청으로 만들어서 서버로 넘
김
서버는 데이터를 찾은 후 응답으로 만들어서 넘김
브라우저는 넘겨받은 값을 사용자가 확인할 수 있게 화면에 출력함
HTML & HTTP
• HTML : 브라우저가 화면에 어떻게 컨텐츠를 출력할
지 알려주는 프로토콜(hyper text markup language)
• HTTP : 클라이언트와 서버가 대화하는 언어. 웹상의
요청은 거의 대 부분 HTTP 프로토콜에 기초하여 이
루어짐(hypertext transfer protocol)
HTML…?
• 알고 있는 거니까 넘어갑시다. 주석, <a>, <br> 등의
태그들이 존재합니다.
HTTP
• 요청/응답의 끊임없는 주고 받음.
• HTTP 요청/응답 안에 HTML이 포함되어 있음.
GET/POST
• 가장 많이 사용되는 두 가지 요청
• GET : 서버에게 클릭한 페이지를 달라고 요청하는 것
- 단순한 요청에 사용됨
• POST : 사용자가 입력한 값을 함께 보내는 것 - 사용
자가 입력한 값을 함께 넘겨주어야 할 때 사용
GET
• GET 으로도 데이터를 보낼 수 있으나, 폼에 다 보이
고 글자 수가 제한이 있음.
POST
• 복잡한 요청을 넘기기 위한 프로토콜
Response From Server
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 20 Oct 2014 07:48:09 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Content-Encoding: gzip
URI
• 서버에 자원을 요청하는 주소. 웹서버에 이 주소로 요
청하면 해당하는 위치에 있는 리소스가 날아오게 됨
동적 페이지 vs 정적 페
이지
• 위와 같은 세팅에서는 *이미 존재하는* 리소스만 넘
겨줄 수 있음.
• Q. 동적으로 컨텐츠를 만들어서 전송하는 것은?(현
재 시간, 주사위의 눈의 수…)
• 서버 상에 데이터를 저장하고 싶을 때는?
CGI
매핑되어 있는 주소로 요청이 들어옴
요청을 확인한 서버가 도우미 어플리케이션 호출
CGI(도우미 어플리케이션)은 페이지를 만들어서 서버에 넘겨줌
서버는 클라이언트에게 응답함
톰캣 설치
• 톰캣을 설치해보자
• http://blog.naver.com/piro37/220052701416
• 톰켓은 JSP/Servlet 컨테이너 중 하나로 사용자에게
jsp 요청을 받으면 서블릿으로 이를 변환해서 실행.
• 톰켓 자체에 간단한 웹서버가 내장되어 있음.
서블릿 실습
• http://dkatlf900.tistory.com/68
서블릿 이론
• CGI는 동적인 웹 어플리케이션 기술로 서블릿보다
먼저 만들어짐
• 자바로 작성된 코드. JVM 위에서 돌아가기 때문에 하
드웨어랑 소프트웨어로부터 자유로움
• 클라이언트에서 받은 요청을 웹 컨테이너(톰켓)으로
보내게 됨.
처리과정
웹 브라우저에서 서버로 helloServlet을 요청
요청받은 웹서버는 서블릿 컨테이너에게 HelloServlet 처리 요청
서블릿 컨테이너는 HelloServlet을 찾고 실행
HelloServlet은 처리결과를 웹서버로 주고, 웹서버는 이걸로 응답
DD
• 요청이 들어온 서블릿을 매핑해주는 역할
• 웹 어플리케이션에는 하나의 DD만 존재함
<servlet>
<servlet-name>Insert</servlet-name>
<servlet-class>com.namex.shortener.Insert</servlet-class>
<load-on-startup>-1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Insert</servlet-name>
<url-pattern>/insert</url-pattern>
</servlet-mapping>
DD
• <servlet-name> : 서블릿 태그를 servlet-mapping과
연관시킨다.
• <servlet-class> : 이 안에는 자바 클래스 이름이 들어
감
• <url-patten> : 이 주소로 요청이 들어오면 자바 클래
스를 호출하게 됨.

More Related Content

What's hot

SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기
Myung Woon Oh
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
DK Lee
 
JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍
Myungjin Lee
 
Json view 예제 설명
Json view 예제 설명Json view 예제 설명
Json view 예제 설명
Hyung Eun Jin
 
4-2. ajax
4-2. ajax4-2. ajax
4-2. ajax
JinKyoungHeo
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
DK Lee
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.js
Woo Jin Kim
 
20131217 html5
20131217 html520131217 html5
20131217 html5
DK Lee
 
3-2. selector api
3-2. selector api3-2. selector api
3-2. selector api
JinKyoungHeo
 
Servlet Architecture
Servlet ArchitectureServlet Architecture
Servlet Architecture
JU Chae
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
기동 이
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
Kwangyoun Jung
 
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
Myungjin Lee
 
[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발NAVER D2
 
React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기
WebFrameworks
 
React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작
Taegon Kim
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까?
Kim Hunmin
 
04.모바일 device api_실습교재
04.모바일 device api_실습교재04.모바일 device api_실습교재
04.모바일 device api_실습교재
Hankyo
 
Node.js intro
Node.js introNode.js intro
Node.js intro
Chul Ju Hong
 

What's hot (20)

SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기SpringMVC 전체 흐름 알아보기
SpringMVC 전체 흐름 알아보기
 
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
자바 웹 개발 시작하기 (2주차 : 인터넷과 웹 어플리케이션의 이해)
 
JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍JSP 프로그래밍 #01 웹 프로그래밍
JSP 프로그래밍 #01 웹 프로그래밍
 
Json view 예제 설명
Json view 예제 설명Json view 예제 설명
Json view 예제 설명
 
4-2. ajax
4-2. ajax4-2. ajax
4-2. ajax
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
 
진짜기초 Node.js
진짜기초 Node.js진짜기초 Node.js
진짜기초 Node.js
 
20131217 html5
20131217 html520131217 html5
20131217 html5
 
Html5 performance
Html5 performanceHtml5 performance
Html5 performance
 
3-2. selector api
3-2. selector api3-2. selector api
3-2. selector api
 
Servlet Architecture
Servlet ArchitectureServlet Architecture
Servlet Architecture
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
 
장고로 웹서비스 만들기 기초
장고로 웹서비스 만들기   기초장고로 웹서비스 만들기   기초
장고로 웹서비스 만들기 기초
 
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기JSP 프로그래밍 #02 서블릿과 JSP 시작하기
JSP 프로그래밍 #02 서블릿과 JSP 시작하기
 
[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발[Hello world 오픈세미나]open api client개발
[Hello world 오픈세미나]open api client개발
 
React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기React를 이용하여 멀티플랫폼에서 개발하기
React를 이용하여 멀티플랫폼에서 개발하기
 
React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작React Native를 사용한
 초간단 커뮤니티 앱 제작
React Native를 사용한
 초간단 커뮤니티 앱 제작
 
Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까? Facebook은 React를 왜 만들었을까?
Facebook은 React를 왜 만들었을까?
 
04.모바일 device api_실습교재
04.모바일 device api_실습교재04.모바일 device api_실습교재
04.모바일 device api_실습교재
 
Node.js intro
Node.js introNode.js intro
Node.js intro
 

Viewers also liked

Servlet&jsp 1장
Servlet&jsp 1장Servlet&jsp 1장
Servlet&jsp 1장JeongBong Kim
 
Okjsp v13.0 131120
Okjsp v13.0 131120Okjsp v13.0 131120
Okjsp v13.0 131120Roy Jung
 
Servlet3
Servlet3Servlet3
Servlet3
Sukjin Yun
 
Hellotutorial
HellotutorialHellotutorial
Hellotutorial
hellotutorial
 
Playnode 2016 조승연
Playnode 2016 조승연Playnode 2016 조승연
Playnode 2016 조승연
Kivol
 
1주차 자기개발 항목(jsp 컴파일)
1주차 자기개발  항목(jsp 컴파일)1주차 자기개발  항목(jsp 컴파일)
1주차 자기개발 항목(jsp 컴파일)
brain816
 
크리테오 설명서
크리테오 설명서크리테오 설명서
크리테오 설명서
TNM Media
 
로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?
Heemin Kim
 
Jsp convert to Servlet
Jsp convert to ServletJsp convert to Servlet
Jsp convert to Servlet
JU Chae
 
HeadFisrt Servlet&JSP Chapter 5
HeadFisrt Servlet&JSP Chapter 5HeadFisrt Servlet&JSP Chapter 5
HeadFisrt Servlet&JSP Chapter 5
J B
 
HeadFisrt Servlet&JSP Chapter 6
HeadFisrt Servlet&JSP Chapter 6HeadFisrt Servlet&JSP Chapter 6
HeadFisrt Servlet&JSP Chapter 6
J B
 
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
탑크리에듀(구로디지털단지역3번출구 2분거리)
 
HTTP web server 구현
HTTP web server 구현HTTP web server 구현
HTTP web server 구현
Javajigi Jaesung
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
Chang W. Doh
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업NAVER D2
 
코딩에는 좋은 노트북이 필요 없다
코딩에는 좋은 노트북이 필요 없다코딩에는 좋은 노트북이 필요 없다
코딩에는 좋은 노트북이 필요 없다
Han Sung Kim
 
잘 알려지지 않은 이클립스 팁
잘 알려지지 않은 이클립스 팁잘 알려지지 않은 이클립스 팁
잘 알려지지 않은 이클립스 팁
Kenu, GwangNam Heo
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술
JungHyuk Kwon
 

Viewers also liked (20)

Servlet&jsp 1장
Servlet&jsp 1장Servlet&jsp 1장
Servlet&jsp 1장
 
Smb storyboard 120622
Smb storyboard 120622Smb storyboard 120622
Smb storyboard 120622
 
Okjsp v13.0 131120
Okjsp v13.0 131120Okjsp v13.0 131120
Okjsp v13.0 131120
 
Servlet3
Servlet3Servlet3
Servlet3
 
Hellotutorial
HellotutorialHellotutorial
Hellotutorial
 
Playnode 2016 조승연
Playnode 2016 조승연Playnode 2016 조승연
Playnode 2016 조승연
 
1주차 자기개발 항목(jsp 컴파일)
1주차 자기개발  항목(jsp 컴파일)1주차 자기개발  항목(jsp 컴파일)
1주차 자기개발 항목(jsp 컴파일)
 
크리테오 설명서
크리테오 설명서크리테오 설명서
크리테오 설명서
 
로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?로그인은 어떻게 동작하나?
로그인은 어떻게 동작하나?
 
Jsp convert to Servlet
Jsp convert to ServletJsp convert to Servlet
Jsp convert to Servlet
 
HeadFisrt Servlet&JSP Chapter 5
HeadFisrt Servlet&JSP Chapter 5HeadFisrt Servlet&JSP Chapter 5
HeadFisrt Servlet&JSP Chapter 5
 
HeadFisrt Servlet&JSP Chapter 6
HeadFisrt Servlet&JSP Chapter 6HeadFisrt Servlet&JSP Chapter 6
HeadFisrt Servlet&JSP Chapter 6
 
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
자바기초에서 JSP, 스프링, MyBatis까지_ 자바개발자를 꿈꾸는 당신에게..
 
HTTP web server 구현
HTTP web server 구현HTTP web server 구현
HTTP web server 구현
 
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
프론트엔드 개발자를 위한 크롬 렌더링 성능 인자 이해하기
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업
 
코딩에는 좋은 노트북이 필요 없다
코딩에는 좋은 노트북이 필요 없다코딩에는 좋은 노트북이 필요 없다
코딩에는 좋은 노트북이 필요 없다
 
잘 알려지지 않은 이클립스 팁
잘 알려지지 않은 이클립스 팁잘 알려지지 않은 이클립스 팁
잘 알려지지 않은 이클립스 팁
 
웹을 지탱하는 기술
웹을 지탱하는 기술웹을 지탱하는 기술
웹을 지탱하는 기술
 
Eclipse web
Eclipse webEclipse web
Eclipse web
 

Similar to HeadFisrt Servlet&JSP Chapter 1

DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
dgmit2009
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림
우림 류
 
웹소켓 (WebSocket)
웹소켓 (WebSocket)웹소켓 (WebSocket)
웹소켓 (WebSocket)
jeongseokoh
 
웹 서버 실행 환경
웹 서버 실행 환경웹 서버 실행 환경
웹 서버 실행 환경
성균 전
 
CDN overview
CDN overviewCDN overview
CDN overview
Yoohyun Kim
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
SeungHyun Lee
 
Web server
Web serverWeb server
Web server
Lee Geonhee
 
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
JinuNoh
 
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
진태 이
 
Web hacking introduction
Web hacking introductionWeb hacking introduction
Web hacking introduction
Jinkyoung Kim
 
3장
3장3장
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012devCAT Studio, NEXON
 
Web server
Web serverWeb server
Web server
Herren
 
워드프레스를 이용해 나만의 홈페이지 만들기(1)
워드프레스를 이용해 나만의 홈페이지 만들기(1)워드프레스를 이용해 나만의 홈페이지 만들기(1)
워드프레스를 이용해 나만의 홈페이지 만들기(1)
Donghwan Oh
 
HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장
Hyejin Oh
 
브라우저는 어떻게 동작하는가?
브라우저는 어떻게 동작하는가?브라우저는 어떻게 동작하는가?
브라우저는 어떻게 동작하는가?
Minseok Jang
 
TCP/IP Protocol - JAVA
TCP/IP Protocol - JAVATCP/IP Protocol - JAVA
TCP/IP Protocol - JAVA
cooddy
 
[Network] Data Transfer History
[Network] Data Transfer History[Network] Data Transfer History
[Network] Data Transfer History
ssuserb2b4e71
 
Http 헤더
Http 헤더Http 헤더
Http 헤더
kidoki
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
SangJin Kang
 

Similar to HeadFisrt Servlet&JSP Chapter 1 (20)

DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
DGMIT 제3회 R&D 컨퍼런스 r&d1 team : HTTP 프로토콜 개요
 
서버성능개선 류우림
서버성능개선 류우림서버성능개선 류우림
서버성능개선 류우림
 
웹소켓 (WebSocket)
웹소켓 (WebSocket)웹소켓 (WebSocket)
웹소켓 (WebSocket)
 
웹 서버 실행 환경
웹 서버 실행 환경웹 서버 실행 환경
웹 서버 실행 환경
 
CDN overview
CDN overviewCDN overview
CDN overview
 
Node.js 첫걸음
Node.js 첫걸음Node.js 첫걸음
Node.js 첫걸음
 
Web server
Web serverWeb server
Web server
 
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
[HTTP 101] 웹 개발자라면 반드시 알아야하는 HTTP의 기초
 
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
Http2(http2.0,g rpc,cookie,session,idempotent, x forwarded-for)
 
Web hacking introduction
Web hacking introductionWeb hacking introduction
Web hacking introduction
 
3장
3장3장
3장
 
이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012
 
Web server
Web serverWeb server
Web server
 
워드프레스를 이용해 나만의 홈페이지 만들기(1)
워드프레스를 이용해 나만의 홈페이지 만들기(1)워드프레스를 이용해 나만의 홈페이지 만들기(1)
워드프레스를 이용해 나만의 홈페이지 만들기(1)
 
HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장HTTP 완벽 가이드 9~10장
HTTP 완벽 가이드 9~10장
 
브라우저는 어떻게 동작하는가?
브라우저는 어떻게 동작하는가?브라우저는 어떻게 동작하는가?
브라우저는 어떻게 동작하는가?
 
TCP/IP Protocol - JAVA
TCP/IP Protocol - JAVATCP/IP Protocol - JAVA
TCP/IP Protocol - JAVA
 
[Network] Data Transfer History
[Network] Data Transfer History[Network] Data Transfer History
[Network] Data Transfer History
 
Http 헤더
Http 헤더Http 헤더
Http 헤더
 
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기HTTP/3 시대의 웹 성능 최적화 기술 이해하기
HTTP/3 시대의 웹 성능 최적화 기술 이해하기
 

HeadFisrt Servlet&JSP Chapter 1

  • 2. What is Server A. 클라이언트는 요청하고, 서버는 제공한다.
  • 3. What is Client 사용자가 웹 페이지의 링크를 클릭 요청으로 만들어서 서버로 넘 김 서버는 데이터를 찾은 후 응답으로 만들어서 넘김 브라우저는 넘겨받은 값을 사용자가 확인할 수 있게 화면에 출력함
  • 4. HTML & HTTP • HTML : 브라우저가 화면에 어떻게 컨텐츠를 출력할 지 알려주는 프로토콜(hyper text markup language) • HTTP : 클라이언트와 서버가 대화하는 언어. 웹상의 요청은 거의 대 부분 HTTP 프로토콜에 기초하여 이 루어짐(hypertext transfer protocol)
  • 5. HTML…? • 알고 있는 거니까 넘어갑시다. 주석, <a>, <br> 등의 태그들이 존재합니다.
  • 6. HTTP • 요청/응답의 끊임없는 주고 받음. • HTTP 요청/응답 안에 HTML이 포함되어 있음.
  • 7. GET/POST • 가장 많이 사용되는 두 가지 요청 • GET : 서버에게 클릭한 페이지를 달라고 요청하는 것 - 단순한 요청에 사용됨 • POST : 사용자가 입력한 값을 함께 보내는 것 - 사용 자가 입력한 값을 함께 넘겨주어야 할 때 사용
  • 8. GET • GET 으로도 데이터를 보낼 수 있으나, 폼에 다 보이 고 글자 수가 제한이 있음.
  • 9. POST • 복잡한 요청을 넘기기 위한 프로토콜
  • 10. Response From Server HTTP/1.1 200 OK Server: nginx Date: Mon, 20 Oct 2014 07:48:09 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: close Cache-Control: no-cache, no-store, must-revalidate Pragma: no-cache Content-Encoding: gzip
  • 11. URI • 서버에 자원을 요청하는 주소. 웹서버에 이 주소로 요 청하면 해당하는 위치에 있는 리소스가 날아오게 됨
  • 12. 동적 페이지 vs 정적 페 이지 • 위와 같은 세팅에서는 *이미 존재하는* 리소스만 넘 겨줄 수 있음. • Q. 동적으로 컨텐츠를 만들어서 전송하는 것은?(현 재 시간, 주사위의 눈의 수…) • 서버 상에 데이터를 저장하고 싶을 때는?
  • 13. CGI 매핑되어 있는 주소로 요청이 들어옴 요청을 확인한 서버가 도우미 어플리케이션 호출 CGI(도우미 어플리케이션)은 페이지를 만들어서 서버에 넘겨줌 서버는 클라이언트에게 응답함
  • 14. 톰캣 설치 • 톰캣을 설치해보자 • http://blog.naver.com/piro37/220052701416 • 톰켓은 JSP/Servlet 컨테이너 중 하나로 사용자에게 jsp 요청을 받으면 서블릿으로 이를 변환해서 실행. • 톰켓 자체에 간단한 웹서버가 내장되어 있음.
  • 16. 서블릿 이론 • CGI는 동적인 웹 어플리케이션 기술로 서블릿보다 먼저 만들어짐 • 자바로 작성된 코드. JVM 위에서 돌아가기 때문에 하 드웨어랑 소프트웨어로부터 자유로움 • 클라이언트에서 받은 요청을 웹 컨테이너(톰켓)으로 보내게 됨.
  • 17. 처리과정 웹 브라우저에서 서버로 helloServlet을 요청 요청받은 웹서버는 서블릿 컨테이너에게 HelloServlet 처리 요청 서블릿 컨테이너는 HelloServlet을 찾고 실행 HelloServlet은 처리결과를 웹서버로 주고, 웹서버는 이걸로 응답
  • 18. DD • 요청이 들어온 서블릿을 매핑해주는 역할 • 웹 어플리케이션에는 하나의 DD만 존재함 <servlet> <servlet-name>Insert</servlet-name> <servlet-class>com.namex.shortener.Insert</servlet-class> <load-on-startup>-1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Insert</servlet-name> <url-pattern>/insert</url-pattern> </servlet-mapping>
  • 19. DD • <servlet-name> : 서블릿 태그를 servlet-mapping과 연관시킨다. • <servlet-class> : 이 안에는 자바 클래스 이름이 들어 감 • <url-patten> : 이 주소로 요청이 들어오면 자바 클래 스를 호출하게 됨.