27장 HTTP와 WWW 27.1 HTTP(Hypertext Transfer Protocol)

Slides:



Advertisements
Similar presentations
12 장 자바 애플릿. 2 Applet 개요 Applet 프로그램 – 웹 페이지에 포함되어 구동 된다. 웹 브라우저나 애 플릿뷰어 (appletviewer) 에서 실행되는 프로그램 – 웹 브라우저 내에 Applet 을 해석하여 실행할 수 있 도록 Applet 구동용 인터프리터가.
Advertisements

컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Oozie Web API 기능 테스트 이승엽.
제 22 장 HTTP 22.1 HTTP 트랜잭션 22.2 요청 메시지 22.3 응답 메시지 22.4 헤더 22.5 예제
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
HTML과 CGI 프로그래밍 PHP 웹 프로그래밍 (PHP Web Programming) 문양세
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
최윤정 Java 프로그래밍 클래스 상속 최윤정
Ch.07-5 xml-rpc 사용하기 김상엽.
Network Lab. Young-Chul Hwang
PHP입문 Izayoi 김조흔.
웹 서버 동작 HTTP 클라이언트가 서버와 대화하는 방법과 데이터를 서버에서 클라이언트로 전송 하는 방법을 정의한 프로토콜
웹 프로토콜과 로그의 이해 ★ 웹 프로토콜 ★ 통신 절차 ★ HTTP Request ★ HTTP Response.
VoIP (Voice Over Internet Protocol)
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
Java 기초 (Java JDK 설치 및 환경설정)
제 23 장 WWW 23.1 하이퍼텍스트와 하이퍼미디어 23.2 브라우저 구조 23.3 고정 문서 23.4 HTML
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
메시지 큐[5] – test1.c 메시지 제어: msgctl(2) #include <sys/msg.h>
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
컴퓨터 프로그래밍 : 실습3 2장 데이터와 식.
HTTP : Hyper Text Transfer Protocol
제 01 장 인터넷 프로그래밍 개요 학기 인터넷비즈니스과 강 환수 교수.
자바 5.0 프로그래밍.
속성과 리스너 초기화 파라미터 외 파라미터에 대해 이해한다. 리스너를 생성해보고 사용에 대해 이해한다.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
Method & library.
자바응용.
Web Basic 김영성 인천대 OneScore
2장. JSP 프로그래밍을 위한 환경구성 제2장.
CGI (Common Gateway Interface)
Go Lang 리뷰 이동은.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
MVC 모델을 이용한 웹 애플리케이션 작성 웹 애플리케이션 개발 순서를 알아본다 웹 애플리케이션의 실행 순서를 이해한다.
제 15 장 BOOTP와 DHCP BOOTP 15.2 동적 호스트 설정 프로토콜.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
프로그래밍 원리 Chapter 05 자바스크립트 기초 신한대학교 IT융합공학부 박 호 균.
웹디자인
CGI란 무엇인가? CGI(Common Gateway Interface)의 정의
Chapter 34. Advanced Web Page Options
World Wide Web 중앙대학교 안 봉 현
자바 5.0 프로그래밍.
12장 쿠키와 세션 이장에서 배울 내용 : 쿠키와 세션은 웹 페이지 간에 정보를 유지할 때 사용된다. 쿠키와 세션은 사용되는 형태가 비슷하나, 쿠키는 웹 브라우저(클라이언트) 쪽에 저장되고, 세션은 웹 서버 쪽에 저장된다. 이 번장에서는 이들에 대해 학습한다.
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
01. DHCP의 개념 조직의 네트워크에 연결되어 있는 워크스테이션의 TCP/IP 설정을 자동화하기 위한 표준 프로토콜
웹(WWW).
Introduction to JSP & Servlet
.Net Web Application 2007 컴퓨터공학실험(Ⅰ)
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
JSP Programming with a Workbook
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
멀티미디어시스템 제 5 장. 멀티미디어 데이터베이스 개념 IT응용시스템공학과 김 형 진 교수.
발표자 : 이지연 Programming Systems Lab.
9 브라우저 객체 모델.
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
7 생성자 함수.
JAVA 프로그래밍 16장 JNLP.
20 XMLHttpRequest.
Presentation transcript:

27장 HTTP와 WWW 27.1 HTTP(Hypertext Transfer Protocol) 27.2 WWW(World Wide Web) 27.3 요약

27.1 HTTP WWW에서 데이터를 엑세스하는데 주로 사용하는 프로토콜임 플레인텍스트, 하이퍼텍스트, 오디오, 영상 등의 형태로 데이터를 전송 기능 FTP와 SMTP의 조합과 비슷 잘 알려진 포트 80번 TCP 서비스를 이용함

27.1.1 HTTP 트랜잭션 HTTP 트랜잭션

27.1.1 HTTP 트랜잭션 메시지 종류 Request : 요청 메시지(C  S) Response : 응답 메시지(S  C)

27.1.2 요청 메시지

27.1.2 요청 메시지 요청 라인 요청종류 : 메소드(GET,HEAD,POST…) 자원(URL) : 프로토콜(FTP,HTTP,TELNET…) HTTP 버전 : HTTP 1.1(1.0,0.9도 사용함)

27.1.2 요청 메시지 URL

27.1.2 요청 메시지 메소드 클라이언트가 서버에게 발행하는 실제 명령 or 요청 메소드 종류 GET HEAD POST 클라이언트가 서버로부터 문자를 읽을 때 문서검색, 응답 메시지의 본문에 문서내용 포함 HEAD 클라이언트가 문서에 대한 정보를 원할 때 응답에 본문이 없음(GET과의 차이) POST 클라이언트가 서버에게 정보를 제공시 사용 예) 서버에게 입력을 보낼때 사용

27.1.2 요청 메시지 PUT PATCH COPY MOVE 서버에 저장될 새 문서 or 교체문서를 제공시 사용 요청된 문서에 포함, URL이 지정한 위치에 저장 PATCH 기존 파일의 변경사항 목록만을 포함 COPY 파일을 다른 위치로 복사시 사용 원본 파일 위치는 요청라인(URL), 목적지 위치는 헤더에서 주어짐 MOVE 파일 이동시 사용 원본 파일 위치는 요청라인(URL), 목적지 위치는 헤더에서

27.1.2 요청 메시지 DELETE LINK UNLINK OPTION 서버에서 문서 제거시 사용 다른 위치로의 링크나 링크 생성시 사용 원본 파일 위치는 요청라인, 목적지 위치는 헤더에서 주어짐 UNLINK LINK에 의해 생성된 링크 삭제시 사용 OPTION 클라이언트가 서버에게 사용 가능한 옵션 질의시 사용

27.1.3 응답 메시지

27.1.3 응답 메시지 상태라인 응답 메시지의 상태 정의 구성요소 : HTTP 버전,공백,상태코드,공백 상태문구 Status code: Same format as FTP responses (three digits)

27.1.4 헤더 헤더 역할 클라이언트와 서버 사이의 추가적인 정보 교환 형식 헤더이름, 콜론, 공백, 헤더 값

27.1.4 헤더 헤더라인 요청 메시지 : 일반, 요청, 항목헤더만 포함 응답 메시지 : 일반, 응답, 항목헤더만 포함 일반헤더(General headers) 요청헤더(Request headers) 응답헤더(Response headers) 항목헤더(Entity headers) 요청 메시지 : 일반, 요청, 항목헤더만 포함 응답 메시지 : 일반, 응답, 항목헤더만 포함

27.1.4 헤더 헤더

27.1.4 헤더 일반헤더(General headers) 요청헤더(Request headers) 메시지에 대한 일반적인 정보 제공 요청과 응답 메시지에 존재 요청헤더(Request headers) 클라이언트의 구성과 선호하는 문서 형식을 지정 응답헤더(Response headers) 서버의 구성과 요청에 대한 특별한 정보를 지정 응답 메시지에만 존재 항목헤더(Entity headers) 문서의 본문에 대한 정보 제공 대부분 응답 메시지에 존재, 일부 요청 메시지에도 존재

27.1.5 예제 예제 1 GET 메소드를 사용하여 경로/usr/bin/image1에 있는 화상을 읽어올 때

27.1.5 예제 예제 2 HEAD 메소드를 사용하여 HTML문서에 대한 정보를 읽어올때

27.1.6 몇 가지 다른 특징들 HTTP 버전 1.1 은 영속적 연결을 기본으로 지정한다.

27.1.6 몇 가지 다른 특징들 비영속적 연결(nonpersistent connection) 각 요청/응답에 대해 하나의 TCP 연결이 만들어 짐 N개의 다른 파일에 있는 그림을 위해 N번 열고 닫아야 함 서버에 큰 오버헤드를 부과하게 됨 영속적 연결(Persistent Connection) 서버는 응답을 전송한 후에 차후의 요청을 위해 연결을 열어놓은 상태로 유지 클라이언트 요청이나 timeout인 경우 닫을 수 있다. 프록시 서버(Proxy Server) 최신 요청에 대한 응답들의 복사물을 가지고 있는 컴퓨터로 서버의 부하를 줄이고 트래픽을 감소시키며 지연을 개선한다.

27.2 WWW(World Wide Web) 전세계에 서로 연결되어있는 지식의 보고 특성 : 유연성, 이식성, 사용자 편의성 CERN(Conseil European la Research Nucleaire) 과학적 연구에 필요한 분산되어있는 자원들을 처리할 수 있는 시스템 참조를 위해 시작됨 European Laboratory for Particle Physics WWW 창시자 : Robert Calliau

27.2 WWW(World Wide Web) 분산된 서비스

27.2.1 하이퍼텍스트와 하이퍼미디어 하이퍼텍스트 : 포인터의 개념이 사용된 연결문서의집합 하이퍼미디어 : 화상, 그래픽, 음성을 포함 홈페이지(Home Page): 특정기관이나 개인의 중심페이지

27.2.2 브라우저 구조 브라우저 구조 : 제어기, Client 프로그램, 해석기

27.2.2 브라우저 구조 웹 문서의 종류

27.2.3 정적 문서(Static Documents) 정적 문서 : 서버에 생성되어 저장된 문서

27.2.4 HTML(Hypertext Markup Language) 웹 페이지 구조 헤드 와 몸체로 구성 헤드 : 페이지의 표제(Title)와 매개변수를 포함 몸체 : 텍스트와 태그를 포함 태그 : < >로 닫혀있고 쌍으로 구성됨(종료태그는 /표시) 굵은체 태그

27.2.4 HTML(Hypertext Markup Language) 굵은체 태그의 효과

27.2.4 HTML(Hypertext Markup Language) 시작(Beginning)과 종료(Ending) 태그

27.2.4 HTML(Hypertext Markup Language) 공통태그 Beginning Tag Ending Tag Meaning Skeletal Tags <HTML> </HTML> Defines an HTML document <HEAD> </HEAD> Defines the head of the document <BODY> </BODY> Defines the body of the document Title and Header Tags <TITLE> </TITLE> Defines the tiltle of th document <Hi> </Hi> Defines different headers(i is and integer)

27.2.4 HTML(Hypertext Markup Language) 공통태그 Beginning Tag Ending Tag Meaning Text Formatting Tags <B> </B> Boldface <I> </I> Italic <U> </U> Underlined <SUB> < /SUB > Subscript <SUP> </SUP> Superscript

27.2.4 HTML(Hypertext Markup Language) 공통태그 Beginning Tag Ending Tag Meaning Data Flow Tags <CENTER> </CENTER> Centered <BR> </BR> Line break List Tags <OL> < /OL > Ordered list <UL> </UL> Unordered list <LI> </LI> An item in a list

27.2.4 HTML(Hypertext Markup Language) 공통태그 Beginning Tag Ending Tag Meaning Image Tags <IMG> Defines an image Hyperlink Tags <A> </A> Defines an address(hyperlink) Executable contents <APPLET> < /APPLET > The document is an applet

27.2.4 HTML(Hypertext Markup Language) 예제 3 <HTML> <HEAD> <TITLE> Second Sample Document </TITLE> </HEAD> <BODY> <CENTER> <H1><B> ATTENTION </B></H1> </CENTER> You can get a copy of this document by: <UL> <LI> Writing to the publisher <LI> Ordering on-line <LI> Ordering through a bookstore </UL> </BODY> </HTML>

27.2.4 HTML(Hypertext Markup Language) 예제 4 <HTML> <HEAD> <TITLE> Third Sample Document </TITLE> </HEAD> <BODY> This is the picture of a book: <IMG SRC="Pictures/book1.gif" ALIGN=MIDDLE> </BODY> </HTML>

27.2.4 HTML(Hypertext Markup Language) 예제 5 <HTML> <HEAD> <TITLE> Fourth Sample Document </TITLE> </HEAD> <BODY> This is a wonderful product that can save you money and time. To get information about the producer, click on <A HREF=”http://www.phony.producer”> Producer </A> </BODY> </HTML>

27.2.5 동적문서(Dynamic Documents) 미리 정의된 형식으로 존재하지 않음 브라우저가 요청할 때마다 웹 서버에 의해 생성 동적문서 처리과정 서버는 URL이 동적문서를 정의하고 있는지 알아내기 위해 검사한다. 만일 URL이 동적 문서를 정의하고 있다면, 서버는 프로그램을 수행 시킨다. 서버는 프로그램의 출력을 클라이언트(브라우저)로 송신한다.

27.2.5 동적문서(Dynamic Documents)

27.2.6 CGI(Common Gateway Interface) 동적 문서를 생성하고 처리하는 기술 C, C++, Bouren Shell, Korn Shell, C Shell, Tcl, Perl Common Gateway Interface 공통적으로 정의 되는 규칙의 집합을 정의 다른 자원을 엑세스하기 위해 사용될 수 있는 게이트웨이라는 것을 의미 임의 CGI 프로그램에서도 사용될 수 있는 미리 정의된 용어, 변수, 함수 등의 집합이 존재한다는 것을 의미

27.2.6 CGI(Common Gateway Interface) 일련의 논리를 코딩 환경변수 브라우저의 질의에 응답하고 자원을 액세스 하기위해 일련의 환경변수를 사용 부모 프로세스로부터 변수들을 상속 받거나, 혹은 브라우저에 의해 제공된 변수

27.2.6 CGI(Common Gateway Interface) 입력 http://www.deanza/cgi-bin/prog.pl?file1 서버가 URL을 수신하면, 서버는 수행될 프로그램을 액세스 하기위해 사용 클라이언트에서 전송된 입력으로 해석 QUERY_STRING 저장

27.2.6 CGI(Common Gateway Interface) 출력 Text, Http, …. CGI Program Server site Client 2진 data, 상태 코드, 명령어, …. Header 생성 헤더 CONTENT_LENGTH : 출력 데이터를 바이트로 표시 CONTENT_TYPE : 출력 데이터의 종류를 정의 EXPIRES : 날짜와 시간을 표시 LOCATION : 방향 재지정 PRAGMA : 문서의 캐쉬기능 설정 or 해제 STATUS : 요청의 상태 표시

27.2.6 CGI(Common Gateway Interface) 예제 6 (Bourne shell) #!/bin/sh # The head of the program echo Content_type: text/plain echo # The body of the program now=’date‘ echo $now exit 0

27.2.6 CGI(Common Gateway Interface) 예제 7 (HTML) #!/bin/sh # The head of the program echo Content_type: text/html echo # The body of the program echo <HTML> echo <HEAD><TITLE> Date and Time </TITLE></HEAD> echo <BODY> now=’date‘ echo <CENTER><B> $now </B></CENTER> echo </BODY> echo </HTML> exit 0

27.2.6 CGI(Common Gateway Interface) 예제 8 (Perl) #!/bin/perl # The head of the program print "Content_type: text/html\n" ; print "\n" ; # The body of the program print "<HTML>\n" ; print "<HEAD><TITLE> Date and Time </TITLE></HEAD>\n" ; print "<BODY>\n" ; $now = ’date‘; print "<CENTER><B> $now </B></CENTER>\n" ; print "</BODY>\n" ; print "</HTML>\n" exit 0

27.2.7 액티브 문서(Active Documents) 클라이언트 사이트에서 수행될 프로그램 서버로부터 클라이언트로 2진 형태로 운반 문서가 서버 사이트에서 압축되고, 클라이언트 사이트에서 복원 대역폭과 전송시간을 절감할 수 있다.

27.2.7 액티브 문서(Active Documents)

27.2.7 액티브 문서(Active Documents) 생성, 컴파일, 실행 서버 소스 코드로 된 프로그램 작성, 파일로 저장 프로그램 컴파일, 2진코드 생성 파일로 저장 (경로명은 URL에서 파일 참조로 사용) 파일 프로그램 명령어 : 2진 형태 식별자 : 2진 옵셋 주소에 의해 참조 (변수, 상수, 함수 이름 등) 클라이언트 2진 코드의 복사본 요청 (압축된 형태로 전송) 2진 코드를 실행 가능한 코드로 변환 프로그램 수행 애니메이션이나 사용자와의 상호작용을 포함할 수 있는 결과 출력

27.2.8 자바(Java) Java 클래스 라이브러리의 조합 객체지향 언어 고급 프로그래밍 언어와 런타임 환경 활동적인 문서를 작성하고 브라우저가 이를 수행 (APPLET, JSP) 브라우저를 사용하지 않는 독립적 프로그램으로도 사용 (application) 애플릿을 생성하는데 사용 객체지향 언어 C++ 과 매우 유사 C++의 복잡성은 없다.( 연산자 오버로드, 다중 상속) 하드웨어에 독립적, 포인터를 사용하지 않음. Type 언어 : 데이터를 사용하기 전에 데이터 유형을 선언 다중처리 언어 : 다중성을 만들도록 복수 쓰레드 사용 가능

27.2.8 자바(Java) 클래스와 객체 객체는 캡슐화 된 데이터를 처리하기 위해 메소드를 사용하는 클래스의 인스턴스이다. 상속 객체의 계층 구조를 정의하여, 한 객체가 다른 객체로부터 데이터와 메소드를 상속 받을 수 있도록 한다. Java 하나의 클래스를 많은 클래스들에 공통된 데이터와 메소드를 포함하는 기초 클래스(base class)로 정의 할 수 있다

27.2.8 자바(Java) 패키지 클래스 라이브러리로 하여금 애플릿에서 서로 다른 객체들을 생성하고 사용할 수 있도록 한다.

27.2.8 자바(Java) 애플릿의 골격 자바로 작성된 동적 문서로, 개방적으로 상속된 클래스의 정의 java.applet 라이브러리에 정의 된 애플릿 클래스로부터 상속 폐쇄형 데이터와 개방형 및 폐쇄형 메소드를 정의 할 수 있다

27.2.8 자바(Java) 인스턴스화 클라이언트 프로세스는 애플릿의 인스턴스를 생성 브라우저는 폐쇄형 메소드를 호출 데이터를 액세스하기 위해 애플릿에 정의 된 개방형 메소드를 사용

27.2.8 자바(Java) 생성 및 컴파일 텍스트 편집기를 사용하여 생성 File name : * . java 자바 컴파일러 바이트 코드 생성 File name : * . class

27.2.8 자바(Java) HTML 문서 애플릿을 사용하기 위해선 HTML 문서를 만들어 애플릿의 이름을 <APPLET> 태그 사이에 삽입 태그는 애클릿을 위해 사용될 창의 크기를 결정

27.2.8 자바(Java) 예제 9 import java.applet.* ; import java.awt.* ; public class First extends Applet { public void paint (Graphics g) g.drawString ("Hello World", 100, 100 ) ; } Java.awt에서 정의 된 메소드 호출 개방적으로 상속된 클래스 사용 브라우저는 paint를 통해 First의 인스턴스를 액세스 세 개의 매개변수가 drqwstring으로 전달

27.2.8 자바(Java) 예제 10 import java.applet.* ; import java.awt.* ; public class Second extends Applet { public void paint (Graphics g) g.drawLine (0, 0, 80, 90 ) ; } 선을 그리도록 한다(시작점 x, y, 끝점 x, y)

27.3 요약