TCP/IP Model

Similar documents
Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

본 강의에 들어가기 전

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

PowerPoint Template

Microsoft PowerPoint - aj-lecture1.ppt [호환 모드]

14-Servlet

2장 변수와 프로시저 작성하기

chapter1,2.doc

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

PowerPoint 프레젠테이션

PowerPoint Template

슬라이드 1

PowerPoint 프레젠테이션

Secure Programming Lecture1 : Introduction

게시판 스팸 실시간 차단 시스템

뇌를 자극하는 JSP & Servlet 슬라이드

Microsoft Word - Solaris 9에_Tomcat _설치.doc

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

The Pocket Guide to TCP/IP Sockets: C Version

뇌를 자극하는 JSP & Servlet 슬라이드

WAS 의동작과 WEB, Servlet, JSP 엑셈컨설팅본부 /APM 박종현 웹어플리케이션서버란? 웹어플리케이션서버방식은웹서버가직접어플리케이션프로그램을처리하는것이아니라웹어플리케이션서버에게처리를넘겨주고어플리케이션서버가어플리케이션프로그램을처리한다. 여러명의사용자가동일한페

웹 개발자를 위한 서블릿/JSP

뇌를 자극하는 JSP & Servlet 슬라이드

KYO_SCCD.PDF

gnu-lee-oop-kor-lec06-3-chap7

PowerPoint 프레젠테이션

서블릿의라이프사이클 뇌를자극하는 JSP & Servlet

C# Programming Guide - Types

BEA_WebLogic.hwp

Microsoft Word - src.doc

The Pocket Guide to TCP/IP Sockets: C Version

Data Provisioning Services for mobile clients

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

2009년 상반기 사업계획

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Intro to Servlet, EJB, JSP, WS

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

[Brochure] KOR_TunA

<param-value> 파라미터의값 </param-value> </init-param> </servlet> <servlet-mapping> <url-pattern>/ 매핑문자열 </url-pattern> </servlet-mapping> - 위의예에서 ServletC

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

PowerPoint 프레젠테이션

Interstage5 SOAP서비스 설정 가이드

Network Programming

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

0. 들어가기 전

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F31C2F7BDC32E >

JavaGeneralProgramming.PDF

중간고사

Microsoft PowerPoint 웹 연동 기술.pptx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Portal_9iAS.ppt [읽기 전용]

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른

Spring Boot

PowerPoint Presentation

슬라이드 1

PowerPoint 프레젠테이션

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

PowerPoint 프레젠테이션

컴퓨터과학과 교육목표 컴퓨터과학과의 컴퓨터과학 프로그램은 해당분야 에서 학문적 기술을 창의적으로 연구하고 산업적 기술을 주도적으로 개발하는 우수한 인력을 양성 함과 동시에 직업적 도덕적 책임의식을 갖는 IT인 육성을 교육목표로 한다. 1. 전공 기본 지식을 체계적으로

Microsoft PowerPoint - aj-lecture7.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밍

2009년 상반기 사업계획

Apache2 + Tomcat 5 + JK2 를 사용한 로드밸런싱과 세션 복제 클러스터링 사이트 구축

PowerPoint 프레젠테이션

Chap7.PDF

J2EE & Web Services iSeminar

제11장 프로세스와 쓰레드

Cloud Friendly System Architecture

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

<4D F736F F F696E74202D20C1A632C8B8C7D1B1B9BDBAC7C1B8B5BBE7BFEBC0DAB8F0C0D32D496E E D56432E BC8A3C8AF20B8F0B5E55D>

4S 1차년도 평가 발표자료

PowerPoint Template

adfasdfasfdasfasfadf

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

<4D F736F F F696E74202D2031C0E52E4A535020B9D C6574C0BB20C8B0BFEBC7D120B5BFC0FB20C0A520C7C1B7CEB1D7B7A1B9D620BCD2B0B32

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

슬라이드 1

Javascript

JDBC 소개및설치 Database Laboratory

Microsoft PowerPoint - 04-UDP Programming.ppt

쉽게 풀어쓴 C 프로그래밊

JUNIT 실습및발표

TTA Journal No.157_서체변경.indd

Tomcat.hwp

untitled

<C4FBC1EEB7CE20C1A4B8AEC7D5BDC3B4D95FC1A4B4E42E687770>

Transcription:

Servlet HTTP Connection & Tomcat Server 숙명여자대학교 _ 멀티미디어과학과 2012 년여름학기 윤용익 yiyoon@sm.ac.kr 2012

Web Program Language Web page 작성용언어

CGI 와서블릿 CGI(Common Gateway Interface) 웹사이트에서방명록, 게시판을작성하기위해서는 HTML 문서와함께방명록이나게시판을위한프로그램도작성해야하는데이프로그램은 C, C++, Perl 등다양한언어로작성할수있으며이러한프로그램을통틀어서 CGI 프로그램이라한다 Perl 프로그래밍언어가가장많이사용되고있음 CGI 는프로그래밍언어가아니라웹서버와연결시켜주는규약 (Protocol) 이다 CGI 프로그램은게시판 / 방명록작성, 설문조사, 인터넷쇼핑등동적인홈페이지작성등다양한분야에서널리사용되며웹기반의인터넷에서는필수적인것이다

CGI 라이프사이클 하지만, CGI 는최악의라이프사이클을갖고있다 서버가 CGI 프로그램의접속요청을받으면, 서버는 CGI 프로그램수행을위해새로운프로세스를생성해야하고, 응답생성에필요한모든정보를환경변수와표준입력을통해외부프로그램에전송해야함 매요청마다프로세스를생성하는것은시간과막대한서버의리소스를요구함으로써, 서버가동시에다룰수있는요청의개수를제한하게함 CGI 의성능을개선한방법이나왔으니며, 이것은서블릿 (Servlet) 이라부른다

서블릿 (Servlet) 서블릿은웹서버의자바가상머신안에서동작된다는점을제외하고는교유의서버익스텐션과유사하다 안전하고이식성이높다 서블릿은서버의도메인안에서단독으로동작한다 애플릿과는달리웹브라우저안에서의자바의대한자원을필요로하지않다 독립적인프로그램이나요청을처리하기위해다중프로세스를필요로하는 CGI 와달리, 서블릿은웹서버프로세스안에서독립적인쓰레드에의해모든작업이처리된다 주요웹서버대부분이서블릿을지원한다

서블릿 API API 계층구조 사용자정의 Servlet

서블릿예제

서블릿실행방법 (1) 실행환경 Servlet API 클래스파일을얻기위해 : JDK(JSDK(Java Servlet Development Kit)) or Java EE 6 SDK http://www.oracle.com/technetwork/java/archive-142520.html 서블릿을사용하기위해이용가능한서블릿엔진은 : Apache (Tomcat) 서블릿과 JSP 를실행시키기위한서블릿컨테이너 (Servlet Container) Sun Microsystems 와 Apache Software Foundation 이 Jakarta 프로젝트를통해공동으로개발한서블릿컨테이너 http://tomcat.apache.org/download-60.cgi

서블릿실행방법 (2) TOMCAT 6.0 SERVLET 실행시키기위한설정 TOMCAT 의버전이올라가면서보안상의이유로기본적으로는서블릿을실생하지못하도록설정이되어있음 TOMCAT 설치한디렉터리의 CONF -> web.xml 파일을수정함으로써톰켓을실행하는데필요한환경설정정보를변경할수있다 TOMCAT 환경설정파일 %CATALINA_HOME%\conf\web.xml Web.xml 파일에서서블릿을실행할수있도록서블릭의접근방법을지정해줌으로써서블릿서비스를제공할수있다

서블릿실행방법 (3) 서블릿을실행하기위한환경설정파일을수정 web.xml 파일의변경 99 번째 ~ 109 번째줄주석해제 (or 126 138page) <servlet> <servlet-name>invoker</servlet-name> <servlet-class> org.apache.catalina.servlets.invokerservlet </servlet-class> <init-param> <param-name>debug</param-name> <param-value>0</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet>

서블릿실행방법 (4) 348 번째 ~ 351(or 385 391) 번째줄주석해제 <servlet-mapping> <servlet-name>invoker</servlet-name> <url-pattern>/servlet/*</url-pattern> </servlet-mapping>

서블릿실행방법 (5) Tomcat 설치디렉터리의 conf/context.xml 파일을열고, <Context> 태그를다음과같이수정 : <Context reloadable="true" privileged="true">

참고 :TOMCAT 6.0 컨텍스트설정 1. 도메인으로분류하는방법 TOMCAT_HOME\conf\server.xml 을열면기본적으로하나의 Service 엘리먼트가있고그하위에 Engine 엘리먼트가, 또그하위에아래와같은하나의 Host 엘리먼트가있다 Host name="localhost" appbase="webapps" unpackwars="true" autodeploy="true" xmlvalidation="false" xmlnamespaceaware="false"> </Host> 아래와같이추가하려는도메인으로 Host 엘리먼트를하나더추가한다 <Host name="localhost" appbase="webapps" unpackwars="true" autodeploy="true" xmlvalidation="false" xmlnamespaceaware="false"> </Host> <Host name="www.testdomain.com" appbase="c:\testdomain" unpackwars="true" autodeploy="true" xmlvalidation="false" xmlnamespaceaware="false"> </Host> WEB-INF 의 web.xml 등은 TOMCAT_HOME\webapps\ROOT\WEB-INF 에서복사한

서블릿프로그램의상속관계

서블릿라이프사이클 (Generic Servlet)

서블릿라이프사이클 (HTTP Servlet) 실제적인service() 의method( 응답시스템 ) 구체화된실제method doxxx() method (xxx : client 의요청방식 ) doget(), dopost() 가가장많이사용 dodelete(),doput():cgi,dotrace(),dooptions() doget(),dopost():html //get 방식이나,post 방식으로요청한 client 에대한응답 service 를제공하는 method *method 의선택 : 실행되는 method 는 client 의요청방식에따라결정

GET 과 POST 의차이 GET 방식 정보 를처리하는것 ( 정보 : 문서, 차트, 질의어처리에따른결과 ) GET 방식은프로그램이환경변수를사용하여데이터를서버에전달하므로전달된환경변수의정의에의한한계를가지게된다 따라서, 사용자의입력양이많은프로그램에서는큰데이터를모두저장할수없기때문에사용되지않고소량의데이터를전송할때사용 예 ) 검색사이트 POST 방식 POST 빙식은데이터를표준입력처리한후서블릿프로그램의매개변수로처리하기때문에 GET 방식과는반대로사용자가입력한큰데이터를서버에전달하는프로그램에서사용한다. 예 ) 차트데이터나데이터베이스에등록될자료들과같은수메가바이트의전송을필요로할떼 POST 는길이에제한이없기때문에 HTTP 요청의일부분으로서소켓을통하므로클라이언트에게는보여지지않고데이터를전송한다 예 ) 게시판에서자료를게시하는것

dopost() 방식처리 dopost( ) POAT 방식으로요청한 CLIENT에응답 SERVICE를제공하는방법 <form method= post 이렇게요청하면 dopost() 호출

doget() 방식 doget( ) GET 방식으로요청한 CLIENT에응답 SERVICE를제공하는방법 <form method= get 이렇게요청하면 doget() 호출

FORM 태그의메소드 FORM 의액션형태 HTML 의 FORM 데이터를처리하기위해서는 FORM 태그를가지는 HTML 문서와자료를처리할수있는서블릿프로그램이필요

GET 방식처리 GET 방식을사용하여값을전달할때에는 URL 의끝부분에쿼리스트림으로전달하고자하는변수의이름과값이추가된다 GET 메소드를사용하는경우에웹클라이언트가웹서버에전달하는내용은 URL 의끝부분에쿼리스트림의형태로전달된다 쿼리스트림이란서블릿이름다음에? 문자로시작하는문자열을의미 쿼리스트림은 이름 = 값 의쌍으로구성되어있으며, 여러개의쌍이나올때는 & 문자를이용하여구별한다 쿼리스트링에들어가는문자가특수문자 ( 한글, 빈칸, % 등 ) 인경우에는 % 문자로시작하는 16 진수값으로변환하여전달된다 HTML 의 FORM 태그에서 GET 메소드를사용하기위해서는 METHOD 속성을 GET 으로값을설정한다

GET 방식프로그램 _1

GET 방식프로그램 _2

GET 테스트실행방법및결과 _1 GET 테스트실행방법및결과 1 - ServletTest02.class 파일은 <Tomcat>\webapps\ROOT\WEB-INF\classes 폴더에저장 - GetTest.html 파일은 <Tomcat>\webapps\ROOT 폴더에저장한후웹사이트방문.

GET 테스트실행방법및결과 _2

POST 방식처리 서블릿에서 POST 를사용하는경우에는 dopost() 메소드를작성해야한다 웹서버에데이터가전달될때 POST 방식인경우에는데이터의길이에제한을받지않는다 전달되는이름이나값이 URL 의끝에붙지않는다 이러한장점때문에게시판이나방면록은대부분운 POST 방식을사용한다

POST 방식프로그램 _1

POST 방식프로그램 _2

POST 테스트실행방법및결과

HTTP 서블릿을활용한파일업로드서블릿작성 1. 파일업로드를위한 HTML 페이지부터설계 2. HTML 페이지를이용하여호출된 HTTP 서블릿을설계

계속.. FORM 속성 method="post" 메소드를 POST 방식으로설정 왜냐하면, GET 방식으로전달할경우환경변수에내용이저장되므로그크기에한계가있음 또한, 파일의경우대부분바이너리형식으므로 POST 방식으로전달하는것이안전 action=http://park.konkuk.ac.kr:8080/servlet/fileuploadechoservlet 물론파일업로드를위한서블릿을지정해주어야함 enctype=multipart/form-data 파일업로드를위해서중요한속성 업로드할파일의형식을지정한는것으로서, 항상 multipart/form-data 와같이해주어야함 파일 : <input type="file" name="binary"> 파일을업로드하기위해 input 의형식을 file 로지정해주어야함 이는웹브라우저가파일을선택할수있는버튼을자동으로제공하도록함으로써, 사용자가보내고자하는파일을선택할수있도록하는것임

2. 호출되는 HTTP 서블릿은파일을업로드할때, 내부적으로어떻게데이터가 전달되는지를알아보기위해웹클라이언트로부터전달되어온데이터를 그대로출력하도록하는서블릿을작성

2. 결과 실제로파일을업로드했을경우 : 내부적으로전달되는데이터를그대로출력하는결과 HTML 페이지이다 이는바이너리파일을업로드했고, 그내용이 HTTP 서블릿에게전달되고, HTTP 서블릿은이를그대로여과없이결과 HTML 페이지에출력했기때문에, 결과인 HTML 페이지는이상한문자들이찍혀있다