Search

1장 HTTP 개관

발표자
Participant
Presentation Date

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는 서버가 요청 메시지를 수신한 경우, 수행해야 하는 동작을 메소드로 제공
Search
메소드
설명
바디
비고
서버에 명명한 자원을 저장
있음
없으면 저장, 있으면 수정
명명한 자원을 서버에서 제거
없음
클라이언트의 자원을 서버의 게이트웨이 응용프로그램에 보냄
있음
추가, 추가, 추가
명명한 자원에 대해 헤더만 포함한 응답 메시지를 보냄
없음
COUNT5

Status Codes

서버가 보내는 모든 응답에는 상태 코드가 담겨있다.
클라이언트가 요청한 내용에 대한 서버의 응답을 3자리의 코드로 표현.
또한 상태 코드를 설명하는 Reason Phrase 문구를 포함한다.
Search
Codes
설명
성공
재전송
찾을 수 없음
COUNT3

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 : 구글, 유튜브 도입중.

Architectural Components of the Web