PowerPoint 프레젠테이션

Download Report

Transcript PowerPoint 프레젠테이션

자바 네트워크 프로그래밍
김윤수
컴퓨터 네트워크 실험실
2015-07-18
Computer Network Lab.
#
1
목차
 1. WWW이란?
 2. URLs, URIs, 그리고 URNS
 3. HTML과 SGML
 4. HTTP
 5. MIME
 6. CGI
 7. 애플릿과 보안
2015-07-18
Computer Network Lab.
#
2
1. WWW이란?
 World-Wide Web(W3, Web)
 1989년 CERN(유럽 핵물리 연구기관) WWW
프로젝트 시작
 1992년 서비스 시작
 1993년 MOSAIC 발표
 1994년 모질라 발표
2015-07-18
Computer Network Lab.
#
3
2. WWW이란?(계속)
 HTTP(Hypertext Transfer Protocol)
웹 브라우저와 웹서버사이의 통신을 위한 표준
 MIME(Multipurpose Internet Mail Extension)
7비트 아스키 통신을 이용하여 소리와 문자같이 서로 다른 성
격의 데이터를 한꺼번에 전송하기 위해 이들을 코드화하는 방법
에 대한 표준
 HTML(HyperText Markup Language)
Web상에서 사용되는 데이터 형식으로 하이퍼미디어 문서 기술 방식.
2015-07-18
Computer Network Lab.
#
4
2. URLs, URI, 그리고 URNS
 URI(Uniform Resource Identifier)
인터넷상에 존재하는 자원의 위치
– URL(Uniform Resource Location)
인터넷상의 특정위치에 있는 특정 자원 가르킴
(구문) protocol://hostname[:port]/path/filename#section
– URN(Uniform Resource Names)
위치와는 상관없이 특정 자원 가르킴
※ Protocol : file, ftp, http, gopher, news, telnet, WAIS
2015-07-18
Computer Network Lab.
#
5
2. URLs, URI, 그리고 URNS (계속)
http://sunsite.unc.edu/javafaq/oldnews.html
 상대 URL
<a href=“javafaq.html”>
= http://sunsite.unc.edu/javafaq/javafaq.html
 절대 URL
< a href=“/boutell/faq/ww_faq.html”>
= http://sunsite.unc.edu/boutell/faq/ww_faq.html
2015-07-18
Computer Network Lab.
#
6
3. HTML과 SGML(계속)
 SGML(Standard Generalized Markup Language)
– 1970년 미국방성에서 만듬
– 문서의 논리구조와 내용을 기술하기 위한 소프트
웨어 산업 전반 표준(ISO8897)
 HTML(HyperText Markup Language)
- 태그는 대소문자를 구별하지 않음
- 몇몇 태그는 매칭되는 시작태그와 마침태그로
문구 범위지정
<storng>test</strong>;<em>test2</em>;<I>test3</I>
2015-07-18
Computer Network Lab.
#
7
3. HTML과 SGML(계속)
 HTML 1.0
- HTML 최초버전. 다양한 종류의 리스트, 강조된 글씨와 굵은
글씨, 인용, 작성된 문서 형식을 그대로 출력해 주는 기능.
- 사실상의 표준. IETF나 다른 기관이 인정한 공식표준은 아님.
 HTML 2.0
- 이미지와 대화식 폼을 위한 태그 추가. 공식적인 IESG의 표준.
- 모든 웹 브라우저는 HTML 2.0을 지원
2015-07-18
Computer Network Lab.
#
8
3. HTML과 SGML(계속)

HTML 3.0
- 테이블, 수학등식, 도표, 스타일쉬트 추가
- 표준 없음

HTML 3.2
- 현재 개발중인 표준으로 대부분의 브라우저가 지원하는
기능 포함
- 테이블, 이미지 태그 개선, 스타일 쉬트

HTML 4.0
- HTML 3.2을 기반으로 하여 HTML 3.0에서 제안되었던 기능 추가
2015-07-18
Computer Network Lab.
#
9
4. HTTP
 HTTP(HyperText Transfer Protocol)
– 웹 클라이언트가 웹 서버에게 요청하는 방법과 웹
서버가 웹 클라이언트에게 데이터를 되돌려 주는
방법을 정한 표준
– TCP/IP 프로토콜 사용
– HTTP 버전은 1.0 , MIME사용
– HTTP 4단계 처리단계(연결,요청,응답,종료)
2015-07-18
Computer Network Lab.
#
10
4. HTTP(계속)
 연결
Client와 Server의 TCP 연결, port 번호 80번
 요청
– 형식
 GET /index.html HTTP/1.0
키워드, 상대URL, 클라이언트가 이해하는 프로토콜 버전
복귀 개행(carriage return)/줄바꿈(linefeed)
 추가적 정보
Accept : text/html
키워드 : 값
2015-07-18
Computer Network Lab.
#
11
4. HTTP (계속)
 응답
- 응답코드
200 ~ 299 성공 , 300 ~ 399 방향재지정
400 ~ 499 클라이언트 에러 , 500 ~ 599 서버에러
- MIME헤더정보
- 빈줄
- 요청한문서
 종료
2015-07-18
Computer Network Lab.
#
12
4. HTTP (계속)
<EXAMPLE>

HTTP/1.1 200 OK

Server: Apache/1.3.12 (Unix)

Content-Location: index.html

Content-Length: 1358

Content-Type: text/html


<HTML>

.

.

</HTML>
2015-07-18
Computer Network Lab.
#
13
4. HTTP (계속)
 HTTP 1.0
- RFC1945에 문서화 , 공식적인 표준은 아님
 HTTP 1.1
- W3C와 IETF의 HTTP작업그룹에서 개발 제안된 표준
- 요청, 응답, 헤더와 빈줄, MIME방식의 데이터 골격은 유지
 HTTP-NG(Next Generation)
- 한번 연결으로 여러 번 다른 요청 허용
- 채널(port분할)이라는 Application 계층 개념 이용
2015-07-18
Computer Network Lab.
#
14
5. MIME
 MIME?
– 인터넷 전자메일을 통해, 여러종류의 데이터를 전
송하기 위한 개방형 표준.
– 텍스트, 이미지, 오디오, 비디오, 메시지, 멀티파트
어플리케이션등 7가지. 서브타입존재.
2015-07-18
Computer Network Lab.
#
15
5. MIME (계속)
미리 정의된 MIME 컨텐츠 유형들
일반유형
세부유형
유형
text
Plain,html
프린트 가능한 텍스트
multipart
mixed, digest
여러 구성요소로 이루어진
MIME 메시지는 여러 파일을 하
나의 메시지로 코드화
message
Rfc822, news
전자메일메시지
application
Octet-stream
특정 애플리케이션 종속 데이타
image
Jpeg, tiff
그림
audio
basic
소리
video
Mpeg, quicktime
동영상
2015-07-18
Computer Network Lab.
#
16
5. MIME (계속)
 X-유형들
- MIME을 사용하면 표준 세부유형에 속하지 않더라도, 접두어
x-를 사용하여 데이터 형식을 세부유형으로 사용
- x-유형은 애플리케이션 세부유형이고, 세부유형의 이름은 대
개 파일형식이름이거나, 애플리케이션 이름
일반유형
X-세부유형
내용
application
x-hwp
애플리케이션
audio
x-wav
소리
image
X-pict
그림
video
X-fits
동영상
2015-07-18
Computer Network Lab.
#
17
6. CGI
 CGI?
- CGI(Common Gateway Interface)란 웹서버의
기능을 확장하기 위해 웹서버와 다른 프로그램간의
인터페이스 규약
- 서비스 요청이 있을때 마다 HTTP에 의해 실행되어
서버에 독립적인 프로세스
2015-07-18
Computer Network Lab.
#
18
6. CGI (계속)
 CGI 인터페이스 흐름도
요청헤더 + 데이타
웹서버 인자
GET/POST
환경변수/표준입력
응답 헤더 + 데이타
PC(Web Browser)
①
②
③
④
MIME 헤더 + 데이타
SUN SPARC
(Web Server)
CGI Program
웹브라우저에서 CGI 프로그램의 실행을 웹서버에 요청
웹브라우저의 요청을 분석한 다음 CGI 프로그램에 CGI 정보나 인자값을 전달한후 실제 처리
처리된 결과를 MIME 헤더와 함께 웹서버에 전달
웹서버는 MIME 헤더를 분석해 응답헤더를 생성하고 실제 데이터 전달
2015-07-18
Computer Network Lab.
#
19
6. CGI (계속)
 요청방식
(GET/POST)
<FORM METHOD=GET ACTION=“/cgi-bin/register.pl”>
<PRE>
Please enter your name : <INPIT NAME=“username SIZE=40>
Please enter email address : <INPUT NAME=“email” SIZE=40>
<PRE>
<INPUT TYPE=“SUBMIT”>
</FORM>
Please enter your name :
Please enter your email address :
Elliotte Rusty Harold
[email protected]
Register
코드화
Username=Elliotte+Rusty+Harold&email=elharo%40sunsite%2eunc%2eedu
2015-07-18
Computer Network Lab.
#
20
6. CGI (계속)
 GET METHOD Request
GET /cgi-bin/register.pl?Username=Elliotte+Rusty+Harold
&email=elharo%40sunsite%2eunc%2eedu
 POST METHOD Request
POST /cgi-bin/register.pl HTTP/1.0
Content-type: application/x-www-form-urlencoded
Content-length: 65
Username=Elliotte+Rusty+Harold&email=elharo%40sunsite%2eunc%2eedu
※ 파일 Upload시 Content-type은 multipart/form-data
2015-07-18
Computer Network Lab.
#
21
6. CGI (계속)
 CGI 환경변수
환경변수
설명
예제
CONTENT_TYPE
CGI 프로그램에 전달되는 데 Application/x이터 인코딩형식
www-formurlencoded
QUERY_STRING
GET전달방법의 질의문자열
저장장소
Width=58&link=in
dex.html
REMOTE_HOST
서비스요청하는 호스트의 IP
나 도메인명
143.248.1.7
SERVER_PROTOCOL
HTTP버전
HTTP /1.1
SERVER_SOFTWARE
웹서버 이름
Apache/1.3.12
2015-07-18
Computer Network Lab.
#
22
7. 애플릿과 보안
[ 네트워크를 통한 자바 프로그램의 실행과정 ]
개발환경
실행환경
자바소스코드
*.java
클래스 로더
자바 컴파일러
실행시 서버로부터
네트웍을 통해 전달
바이트 코드 검증기
자바 인터프리터
바이트 코드
*.class
자바 클래스
라이브러리
JVM
실행결과
2015-07-18
Computer Network Lab.
#
23
7. 애플릿과 보안
①
②
③
④
⑤
⑥
⑦
⑧
브라우저영역설정
CODEBASE 파라미터에서 지정한 서버 연결
.class파일요청
.class파일안에 들어있는 이진데이터 전송
(MIME 유형 application/octet-stream)
웹 브라우저는 데이터를 받아 바이트 형태로 배열로 저장
바이트코드 검증기의 검증
원시데이타의 자바 클래스 변환. 출처와 함께 namespace에 저장
객체가 다른 클래스 참조시 사용자 CLASSPATH 참조
2015-07-18
Computer Network Lab.
#
24
7. 애플릿과 보안(계속)
 애플릿 네트워크 보안수준
- Signed Applets
애플릿코드에 포함된 문자열인 signature포함.
signature는 애플릿의 출처를 알려준다. 애플릿의 질이나 내용
에 대한 정보는 제공하지 않는다. 변경, 복사불가.
① Untrusted : 실행에 대한 허가 없음.
② High Security : 파일을 읽거나 쓰거나 삭제 불가.
WebView셋팅을 접근 불가. 자신이 다운로드된 서버만
접근및 접속허용. 1024번 포트이상 포트만 연결.
2015-07-18
Computer Network Lab.
#
25
7. 애플릿과 보안
③ Medium Security : 안전성 제약과 함께 수행되는 중간단계
애플릿. High Security에 아래 명시된 액션을 수행하면
WebView는 경고메세지를 준다.
④ Low Security : 최소한의 제약을 가진 애플릿. 위의 세가지 보
안 수준을 경고없이 허용.
- Unsigned Applets
Untrusted, high, or medium Security 할당.
2015-07-18
Computer Network Lab.
#
26
2015-07-18
Computer Network Lab.
#
27