1.1. HTTP: 인터넷의 멀티미디어 배달부
•
HTTP는 전 세계의 웹서버로부터 대량의 정보(이미지, HTML, 텍스트, 동영상 등)를 빠르고 간편하고 정확하게 사람들의 PC 웹브라우저로 전송합니다.
•
HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용합니다.
1.2. 웹 클라이언트와 서버
•
웹 콘텐츠는 웹 서버에 존재 ⇒ 웹 서버는 HTTP 프로토콜로 의사소통하기 때문에 HTTP 서버라고 불림
•
서버는 인터넷의 데이터를 저장하고, 클라이언트가 요청한 데이터를 제공
1.3. 리소스
어떤 종류의 콘텐츠도 리소스가 될 수 있다.
1.3.1. 미디어 타입(MIME 타입)
HTML 문서 | text/html |
plain ASCII 텍스트 문서 | text/plain |
JPEG | image/jpeg |
GIF | image/gif |
애플 퀵타임 동영상 | video/quicktime |
1.3.2 URI
웹 서버 리소스는 각자 이름을 갖고 있어서, 클라이언트는 관심 있는 리소스를 지목 가능
URI ⇒ 서버 리소스 이름, 통합 자원 식별자(Uniform resource Identifier)
URI는 두가지 파트로 나뉜다.
•
URL
•
URN: 콘텐츠를 이루는 한 리소스에 대해, 리소스의 위치에 영향받지 않는 유일무이한 이름 역할. 실험 중인 상태이며 아직 채택은 안 됐음.
1.4. 트랜잭션
구성
•
요청 명령(클라이언트 → 서버)
•
응답 결과(서버 → 클라이언트)
메서드
GET | 서버에서 클라이언트로 지정한 리소스 반환 요청 |
PUT | 클라이언트 → 서버로 보낸 데이터를 (지정한 이름의 리소스로 )저장
덮어쓴다고 생각하면 됨 |
PATCH | 클라이언트 → 서버로 보낸 특정 데이터를 수정
수정된 것만 덮어쓴다고 생각하면 됨 |
DELETE | 삭제 |
POST | 생성(클라이언트 데이터를 서버 게이트웨이 어플리케이션으로 전송) |
HEAD | 지정한 리소스에 대한 응답에서, HTTP 헤더 부분만 |
상태 코드
1.5. 메세지
•
단순 텍스트이지만 보통 형식 지정함(MIME)
1.6. TCP 커넥션
1.6.1. TCP/IP
제공 사항
•
오류 없는 데이터 전송
•
순서에 맞는 전달
•
조각나지 않는 데이터 스트림
1.6.2. 접속, IP 주소, 포트번호
1.8. 웹의 구성요소
프록시 | 클라이언트와 서버 사이에 위치한 HTTP 중개자 |
캐시 | 많이 찾는 웹페이지를 클라이언트 가까이에 보관하는 HTTP 창고 |
게이트웨이 | 다른 애플리케이션과 연결된 특별한 웹 서버 |
터널 | 단순히 HTTP 통신을 전달하기만 하는 특별한 프락시 |
1.8.1. 프락시
•
웹 보안, 애플리케이션 통한, 성능 최적화를 위해 중요
•
클라이언트의 HTTP 요청을 받아 서버에 전달
•
사용자를 위한 프락시로 동작하며 사용자를 대신해서 서버에 접근
•
주로 보안을 위해 사용 ⇒ 모든 웹 트래픽 흐름 속에서 신뢰할만한 중개자 역할
•
요청과 응답을 필터링
1.8.2. 캐시
•
웹캐시 + 캐시 프락시 ⇒ 자신을 거쳐 가는 문서들 중 자주 찾는 것의 사본을 저장하는, 특별한 종류의 HTTP 프락시 서버
1.8.3. 게이트웨이
•
다른 서버들의 중개자로 동작하는 특별한 서버
•
주로 HTTP 트래픽을 다른 프로토콜로 변환하기 위해 사용됨
•
언제나 스스로가 리소스를 갖고 있는 진짜 서버인 것처럼 요청을 다룸
FTP
1.8.4. 터널
•
두 커넥션 사이에서 raw data를 열어보지 않고 그대로 전달해주는 HTTP 어플리케이션
•
비 HTTP 데이터를 하나 이상의 HTTP 연결을 통해 그대로 전송해주기 위해 사용됨
•
암호화된 SSL 트래픽을 HTTP 커넥션으로 전송함으로써 웹 트래픽만 허용하는 사내 방화벽을 통과시키는 것