HTTP : Hyper Text Transfer Protocol HTTP : Hyper Text Transfer Protocol
Computer Network DSU Computer ENG
99003073 서형준 99003084 신인섭 20001001 권민성
HTTP
CONTENTS – Hyper Text Transfer Protocol
HTTP 개요
HTTP Connection
HTTP Message Format
Web Caching in HTTP
참고자료 / 문헌
HTTP
개 요
HTTP 란 ?
Hyper Text Transfer Protocol
World Wide Web( WWW ) 의 분산되어 있는 Server 와 Client 간에 Hypertext 를 이용한 정보교환이 가능하도 록 하는 통신 규약
1989 년 Tim Berners Lee 가 처음 설계
Internet 기반에서 Hypermedia 의 광역적인 정보공유 를 위한 Protocol
Data 가 분산되어 있으면서 빠른 전달속도를 요구하는 S ystem 에 적합한 Hypertext 를 전달하기 위한 목적
HTTP
개 요
HTTP 의 특징
HTTP 메시지는 HTTP Server 와 HTTP Client 에 의해서 해석
TCP / IP 프로토콜의 Application 계층에 위치
TCP Protocol 을 이용한다 ( Default Port 80 )
추가적인 제어 연결없이 Data 만 Client 와 Server 사이에서 전송
Stateless Protocol ( 지속적인 연결상태가 아님 )
현재 Version 1.1 ( RFC 2616 )
HTTP
Connections
HTTP 의 연결 방식
Stateless Protocol ( 지속적인 연결상태가 아님 )
HTTP 는 문서의 참고를 위해 고안된 단순한 프로 토콜이어서 한 번의 요구와 한 번의 응답 후에는 연결을 끊어 버림
비 지속형 연결
지속형 연결 ( Use Pipeline )
HTTP
Connections : 비 지속성 연결방식
비 지속성 연결 ( Non-persistent Connections )
HTTP 1.0 이전까지의 기본연결 방식
비 지속성 연결이란 Client 의 요청에 Server 가 응답 한 후 Client 와 연결을 끊는 것을 말하는 것으로 Server 는 Client 의 계속적인 요청을 기다리지 않고 단 한번의 요청만을 처리하고 그 연결을 끊는 것을 말 한다 .
HTTP
Connections : 비 지속성 연결방식
비 지속형 연결방식 ( Non-persistent
HTTP
Connections : 비 지속성 연결방식
문제점
• 각각의 문서 요청 때문에 매번 TCP 연결을 함으로써 전체적인 RTT 의 증가 .
• 매번 TCP 연결을 설립하면서 생기는 추가적인 processing overhead.
• 서버가 제공하는 서비스에 대해 사용자 인증이 필요 하다면 인증 절차를 처리함에 있어 연속적인 HTTP 메시지 교환이 생기므로 비효율성을 야기 .
HTTP
Connections : 지속성 연결방식
지속성 연결 ( Persistent Connections )
• HTTP 1.1 부터 지원
• 브라우저가 서버에게 HTML 문서를 처음 요청할 때 설 립된 TCP 연결을 서버가 문서를 전송하고 난 후에도 해제시키지 않고 그대로 연결된 상태로 두는 것
HTTP
Connections : 지속성 연결방식
지속형 연결방식 ( Persistent Connection )
HTTP
Connections : 지속성 연결방식
파이프라이닝 ( Pipe Lining )
• 하나의 TCP 연결을 통해 이루어짐
• 지속형 연결 ( Persistent Connection ) 을 통해 구현
기존 방식과 파이프라이닝 방식의 비교
HTTP
Connections : 지속성 연결방식
파이프라이닝 ( Pipe Lining )
• 응답 메시지가 도착하지 않은 상태에서 연속적인 요구 메 시지를 서버에 전달
• 이때 서버는 요구메시지를 수신한 순서대로 응답메시지를 클라이언트에 전달
• 연결과 종료횟수를 줄임으로서 네트워크 자원의 절약
• 발생하는 패킷의 숫자를 감소 , 네트워크 트래픽 감소
HTTP
Message Format
HTTP Message
HTTP
Message Format
Message 종류
Request : 요청 Message ( Client Server )
Response : 응답 Message ( Server Client )
HTTP
Message Format – Request Message
일반헤더 | 요청헤더 | 엔티티헤더
(요청 메시지 )
HTTP
Message Format – Request Message
Request Line
요청종류 : Methods ( GET,HEAD,POST… )
자원 (URL) : Protocol ( FTP,HTTP,TELNET… )
HTTP Version : HTTP 1.1 ( 1.0, 0.9 도 사용 )
Ex ) GET http://www.abc.co.kr:80/index.html HTTP/1.1
HTTP
Message Format – Request Message
Request Line - Methods
Client 가 Server 에게 발행하는 실제 명령 or 요청
Method 종류
• GET
클라이언트가 서버로부터 문자를 읽을 때
문서검색 , 응답 메시지의 본문에 문서내용 포함
• POST
클라이언트가 문서에 대한 정보를 원할 때
응답에 본문이 없음 ( GET 과의 차이 )
• HEAD
클라이언트가 서버에게 정보를 제공시 사용
Ex) 서버에게 입력을 보낼때 사용
HTTP
Message Format – Request Message
• PUT
서버에 저장될 새 문서 or 교체문서를 제공시 사용
요청된 문서에 포함 , URL 이 지정한 위치에 저장
• PATCH
기존 파일의 변경사항 목록만을 포함
• COPY
파일을 다른 위치로 복사시 사용
원본 파일 위치는 요청라인 (URL), 목적지 위치는 헤더에서 주어짐
• MOVE
파일 이동시 사용
원본 파일 위치는 요청라인 (URL), 목적지 위치는 헤더에서 주어짐
HTTP
Message Format – Request Message
• DELETE
서버서 문서 제거시 사용
• LINK
다른 위치로의 링크나 링크 생성시 사용
원본 파일의 위치는 요청라인 , 목적지 위치는 헤더에서 주어짐
• UNLINK
LINK 에 의해 생성된 링크 삭제시 사용
• OPTION
클라이언트가 서버에게 사용 가능한 옵션 질의시 사용
HTTP
Message Format – Request Message
Request Line – URL
Ex ) http://www.abc.co.kr:80/index.html
HTTP
Message Format – Response Message
일반헤더 | 요청헤더 | 엔티티헤더
(응답 메시지 )
HTTP
Message Format – Response Message
Status Line – status code
응답 메시지의 상태 정의
구성요소 : HTTP 버전 , 공백 , 상태코드 , 공백 , 상태 문구
HTTP
Message Format – Response Message
HTTP 버전 : HTTP / 1.1, 1.0
Status Code ( 상태코드 )
요청한 URI 가 존재하지 않을때
요청을 거부 할 때
잘못된 문법으로 인해 요청을 이해 할 수 없을때 요청이 성공했을때
웹서버가 클라이언트에게 Request Message 를 다 받지 않았다는 메시지 브라우저는 안 보낸 메시지를 다 보내
100 야 함
Description Code Error
Continue 200 OK
400 Bad Request 403 Forbidden 404 Not Found 405 Method Not
Allowed 허용하지 않은 Method 가 요청되었을 때
HTTP
Message Format – Headers
Header
• 역할 : 클라이언트와 서버 사이의 추가적인 정보 교환
• 형식 : 헤더이름 , 콜론 , 공백 , 헤더 값
HTTP
Message Format – Headers
o Header Line
일반헤더 (General headers)
요청헤더 (Request headers)
응답헤더 (Response headers)
항목헤더 (Entity headers)
o Request Message : 일반 , 요청 , 항목헤더만 포함
o Response Message : 일반 , 응답 , 항목헤더만 포함
HTTP
Message Format – Headers
HTTP
Message Format – Headers
o 일반헤더 (General headers)
• 메시지에 대한 일반적인 정보 제공
• 요청과 응답 메시지에 존재
HTTP
Message Format – Headers
o 요청헤더 (Request headers)
• 클라이언트의 구성과 선호하는 문서 형식을 지정
호스트의 주소와 포트 번호를 보여준다
클라이언트 프로그램 ( 웹 브라우저 ) 을 표시 User-agent
Host
사용자의 이 메일 주소를 보여준다 From
클라이언트가 가지고 있는 사용자 인증 Authorization
클라이언트가 받아들일 언어 Accept-language
클라이언트가 다루는 문자열 셑 지정 Accept-charset
클라이언트가 받아들이는 미디어 타입 Accept
Description Header
HTTP
Message Format – Headers
o 응답헤더 (Response headers)
• 서버의 구성과 요청에 대한 특별한 정보를 지정
• 응답 메시지에만 존재
HTTP
Message Format – Headers
o 항목헤더 (Entity headers)
• 문서의 본문에 대한 정보 제공
• 응답 메시지 , 요청 메시지에 존재
HTTP
Message Format - Example
메시지 요청과 응답의 예
HTTP
Web Caching
웹 캐시란 인터넷의 게이트웨이 가까이 설치되어 다른 사용자 가 방문했던 같은 사이트의 경우에 캐시 서버에 저장해 두었다 가 멀리 인터넷 밖의 서버에서 가져오지 않고 캐시 서버에서 직 접 응답
서버에서 클라이언트간의 거리로 인한 전송지연을 줄이고 웹 트래픽을 절감함으로서 네트워크의 속도 향상에 지대한 도움
이처럼 동작하는 캐시 서버를 프록시 서버 ( Proxy Server )
HTTP
Web Caching – Proxy Server
포워드 프록시 ( Forward Proxy )
프록시 서버를 ' 클라이언트 호스트들과 접근하고자 하는 원 격 리소스의 사이 ' 에 위치
HTTP
Web Caching – Proxy Server
리버스 프록시 ( Reverse Proxy )
프록시 서버를 ' 인터넷 리소스 또는 인트라넷 리소스 앞 ' 에 위치시키는 방식
HTTP
참고자료
NRC 와 함께 하는 LIVE 네트워크 : 한빛미디어
웹 마스터 IN A NUTSHELL : 한빛미디어
WAP 와 WML 을 중심으로 무선 인터넷 프로그래밍 t-book 5 : 사이텍미디어
컴퓨터 네트워크 : 21 세기사
Application Layer(PPT 문서 ) : Distributed System Lab. K orea University
웹에서의 성능 개선 ( 한글문서 ) : 한국전자통신연구원
하이퍼 텍스트 접속규약 1.1 표준 ( 한글문서 )
HTTP