HTTP( Hypertext Transfer Protocol )
•
하이퍼텍스트를 사용한 전송 통신 규약 → 약속
HTTP : The Internet's Multimedia Courier
•
이미지, HTML, 텍스트, 동영상, 음원, 자바 애플릿...
•
데이터를 온전하게 전송할 수 있는 통신 규약
Web Clients and Servers
•
클라이언트 ( 요청 : Request )
서버 ( 응답 :Response )
•
브라우저 ( 크롬, 엣지, 사파리 ... ) : 주소, 검색, 클릭 → 무언가 표시가 된다!
Resources
Web servers host resources
•
서버가 보유하고 있는 다양한 형태의 정적인 파일을 제공
◦
전철호 코멘트 작성
•
이 외에 실시간 영상, 주식 거래, 전자 상거래 등 인터넷을 통한 행위의 산물
◦
전철호 코멘트 작성
Media Types
•
MIME ( Multipurpose Internet Mail Extensions ) : 다목적 인터넷 메일 확장
◦
이메일에 첨부한 데이터의 형식을 명시적으로 표기
◦
HTTP에서 MIME를 채택하여 사용
•
요청/응답 데이터를 어떻게 다룰 것 인지 MIME를 통해 정의
•
표기 : primary object type / specific subtype
◦
ex ) HTML : text/html
JPEG : image/jpeg
Apple QuickTime movie : video/quicktime
MS PPT : application/vnd.ms-powerpoint
etc...
URIs
•
URIs ( Uniform Resource Identifier ) : 통합 자원 식별자
•
서버가 보유하고 있는 자원의 접근 방식
◦
서버가 보유하고 있는 자원의 식별자
◦
주소 체계 및 표기법
•
URLs & URNs
URLs
•
URLs ( Uniform Resource Locator ) : 통합 자원 지시자
•
서버가 보유하고 있는 자원의 위치를 명시하여 접근
https://www.google.co.kr/imghp/../../...
https:// -> Scheme. 사용할 프로토콜의 이름
www.google.co.kr -> 인터넷 주소
/imghp -> 자원의 위치
HTML
복사
•
URI의 대부분은 URL을 사용한다.
URNs
•
URNs ( Uniform Resource Name )
•
자원의 위치와 관계없이 독립적으로 자원에 접근 할 수 있는 주소
•
다양한 네트워크 프로토콜로 동시 접근이 가능
urn:ietf:rcf:2141
<URN> ::= "urn:" <NID> ":" <NSS>
HTML
복사
Transactions
•
클라이언트의 요청 ←→ 서버의 응답 일련의 단위
•
트랜잭션은 HTTP message를 교환하며 발생
Methods
•
HTTP는 서버가 요청 메시지를 수신한 경우, 수행해야 하는 동작을 메소드로 제공
Default view
Search
Status Codes
•
서버가 보내는 모든 응답에는 상태 코드가 담겨있다.
•
클라이언트가 요청한 내용에 대한 서버의 응답을 3자리의 코드로 표현.
•
또한 상태 코드를 설명하는 Reason Phrase 문구를 포함한다.
Default view
Search
Web Pages Can Consist of Multiple Objects
•
하나의 웹 페이지에 방대한 양의 그래픽적 요소를 표현하고자 하는 경우
•
각 자원은 서로 다른 서버에 존재할 수 있음
•
다양한 서버의 수 만큼 트랜잭션을 생성하여 수많은 자원으로 표현
Messages
•
요청/응답 메시지의 구조는 텍스트로 이루어져 사람이 이해하기 쉽다.
•
메시지의 필드는 [ Start line / Header / Body ] 로 구분한다.
◦
Start line : 메소드, HTTP 버전, 상태 코드 등 정보
◦
Header : 헤더의 요소는 {이름 : 값} 쌍으로 작성. 마지막 줄 이후에 줄바꿈.
◦
Body : 헤더의 마지막 줄바꿈 이후의 부분. 요청/응답에 사용할 데이터를 작성.
Simple Message Example
Connections
TCP를 기반으로 Message 송/수신
TCP/IP
•
HTTP는 TCP를 기반으로 하는 응용 계층의 프로토콜
•
연결, 전송 등 네트워크와 관련된 내용은 TCP/IP가 담당
•
패킷의 손실 방지, 순차적인 패킷 전송, 패킷 미분할등의 특징으로 안정적인 통신이 가능
Connections, IP Address, and Port Number
•
HTTP 요청/응답을 하기 전에 클라이언트와 서버간의 연결 과정 수행
•
DNS를 통해 도메인 주소를 IP 주소로 변환
•
IP주소 뒤에 포트 넘버를 통해 네트워크 서비스 접근 ( 포트 번호 생략 시 Http(80) )
Protocol Version
1.
HTTP/0.9 : HTTP 초기 버전. 지원하는 기능이 매우 적고 문제점 다수.
2.
HTTP/1.0 : HTTP가 널리 사용된 첫 버전. 현재 사용하는 기본적인 기능 추가. 그래픽 요소 및 상호작용 가능한 폼 추가. 상업 및 학계의 프로토콜 발전에 대표적인 기여.
3.
HTTP/1.0+ : 웹 생태계의 발전에 발 맞추어 빠르게 기능이 추가된 버전.
4.
HTTP/1.1 : 구조적 결함 수정 및 성능 최적화, 버그 수정.
5.
HTTP-NG ( HTTP/2.0 ) : HTTP/1.1 이후 후속 버전의 프로토타입.
6.
HTTP/3.0 : 구글, 유튜브 도입중.