-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[1장] HTTP 개관 #2
Comments
장주영 정리 우리가 앞으로 배울 것들
HTTP: 인터넷의 멀티미디어 배달부웹 서버로부터 이 대량의 정보를 빠르고, 간편하고, 정확하게 사람들의 PC에 설치된 웹브라우저로 옮겨준다. HTTP는 신뢰성 있는 데이터 전송 프로토콜을 사용하기 때문에, 데이터가 지구 반대편에서 오더라도 전송 중 손상되거나 꼬이지 않음을 보장한다.
웹 클라이언트와 서버리소스가장 단순한 웹 리소스는 웹 서버 파일 시스템의 정적 파일이다. 하지만 정적 리소스, 동적 리소스 처럼 어떤 종류의 콘텐츠 소스도 리소스가 될 수 있다. 미디어 타입인터넷은 수천 가지 데이터 타입을 다루기 때문에, HTTP는 웹에서 전송되는 객체 각각에 신중하게 MIME 타입이라는 데이터 포맷 라벨을 붙인다. URI서버 리소스 이름은
URL
URN
트랜잭션트랜잭션은 요청명령과 응답결과로 구성되어 있다. 메서드상태코드웹페이지는 여러 객체로 이루어질 수 있다메시지TCP 커넥션TCP(Transmission Control Protocol, 전송 제어 프로토콜) TCP/IPIP(Internet Protocol) TCP/IP는 하드웨어에 구애받지 않는다
접속, IP 주소 그리고 포트번호웹브라우저는 서버의 URL에서 호스트 명을 추출한다. 웹브라우저는 서버의 호스트 명을 IP로 변환한다. 웹브라우저는 URL에서 포트번호(있다면)를 추출한다. 웹브라우저는 웹 서버와 TCP 커넥션을 맺는다. 웹브라우저는 서버에 HTTP 요청을 보낸다. 서버는 웹브라우저는 HTTP 응답을 돌려준다. 커넥션이 닫히면, 웹브라우저는 문서를 보여준다. 텔넷을 이용한 실제 예제프로토콜 버전HTTP/0.9는 오직 GET 메서드만 지원하고, HTTP 1.0+ 지속 커넥션, 가상 호스팅, 프락시 연결 지원 포함 웹의 구성요소프락시 캐시 게이트웨이 터널 에이전트 프락시캐시게이트웨이게이트웨이는 언제나 스스로가 리소스를 갖고 있는 진짜 서버인 것처럼 요청을 다룬다. 클라이언트는 자신이 게이트웨이와 통신하고 있음을 알아채지 못할 것이다. 터널에이전트 |
[1장] HTTP 개관1. HTTP : 인터넷의 멀티미디어 배달부 (Hypertext Transfer Protocol)
2. 웹 클라이언트와 서버
3. 리소스 : 정적 파일, 동적 콘텐츠
4. 트랜잭션 : HTTP 요청과 응답
6. 메시지
7. TCP 커넥션
8. 프로토콜 버전
9. 웹의 구성요소
|
HTTP
웹 클라이언트와 서버
리소스
미디어 타입
URI
URL
URN
트랜잭션
메서드
상태 코드
웹페이지는 여러 객체로 이루어질 수 있다
메시지
TCP 커넥션TCP/IP
접속, IP 주소 그리고 포트번호
|
HTTP?추상적으로 설명하자면, HTTP는 인터넷의 정보들을 전달해주는 배달부와 같다. 수많은 멀티미디어 정보들을 빠르고, 간편하고, 정확하게 전달해줄뿐만 아니라, 전달되는 정보의 무결성을 보장해준다. 웹 클라이언트와 서버
리소스
미디어 타입
URI / URL / URNURI(Uniform Resource Identifier) 는 URL과 URN을 포함하는 개념이며, 인터넷 상의 자원을 식별하는 "식별자"이다.
트랜잭션요청과 응답으로 구성된 하나의 통신 단위 HTTP 메서드와 상태코드요청은 HTTP 메서드와 함께 전달되고, 응답 메세지는 상태코드와 함께 반환된다.
메시지HTTP 메시지(응답, 요청)은 세 부분으로 이루어진다.
TCP 커넥션TCP/IPHTTP가 사용하는 대중적인 인터넷 전송 프로토콜 IP주소와 포트번호HTTP 클라이언트가 메시지를 전송하기 전에, 클라이언트와 서버는 IP주소와 포트번호를 이용해 TCP/IP 커넥션을 맺어야한다. IP주소와 포트번호는 URL을 통해 알아낼 수 있다.
|
웹 클라이언트와 서버
리소스
미디어 타입
URI
<aside> 💡 “http://www.joes-hardware.com/specials/saw-blade.gif → www.joes-hardware.com으로 이동해서 /specials/saw-blade.gif라고 불리는 리소스를 가져오란 의미 </aside> URL
상태 코드 (자세한 내용은 뒷 장에서 알아보자)
웹 페이지는 여러 객체로 이루어질 수 있다.
메시지
TCP 커넥션
요청의 흐름
프로토콜 버전
<aside> 💡 간단히 정리해본 문제점과 발전된 부분 HTTP 1.0 : 매 요청마다 연결/해제의 과정이 발생하여 오버헤드가 발생했고 시간의 지연이 이루어졌었습니다. HTTP 1.1 : Persistent connection 방식과 Pipelining 방식 도입
→ 그러나 여기서도 문제점이 존재했다. Pipelining은 응답은 순서대로 보내주기 때문에 처리시간이 긴 요청에 응답을 기다리는 HOL Blocking 문제가 발생 HTTP 2.0 : 리소스 간 우선순위를 설정하여 HOL Blocking 문제를 해결 </aside> → 오늘날의 HTTP 버전은 1.1을 가장 많이 사용한다. 웹의 구성요소
[ 프록시와 게이트웨이의 차이 ]
→ 추가로 Proxy 서버는 허용된 네트워크만 통과할 수 있지만, 게이트웨이에서는 필터링을 거치지 않는다. |
HTTP신뢰성 있는 데이터 전송 프로토콜을 사용해 인터넷 애플리케이션 개발자가 통신 결함에 대해 고려하지 않아도 됨 웹 클라이언트와 서버웹 서버는 HTTP 요청을 받아, 요청 받은 객체를 찾고, 성공 시 그것의 정보를 HTTP 응답에 실어 클라이언트에 보낸다 리소스웹 서버는 웹 리소스를 관리하고 제공 미디어 타입웹 서버는 모든 HTTP 객체에 MIME 미디어 타입 붙임
URI인터넷의 우편물 주소 URLURI의 가장 흔한 형태 URN위치에 영향 받지 않는 유일무이한 리소스 이름 트랜잭션HTTP 트랜잭션은 요청 + 응답 결과의 묶음 메서드
상태 코드요청 성공 여부, 추가 조치 필요 여부를 상태 코드로 클라이언트에게 알려줌 웹페이지는 여러 객체로 구성하나의 작업을 수행하기 위해 여러 HTTP 트랜잭션을 수행 메시지메시지 구성
TCP 커넥션TCP / IPHTTP 프로토콜 - 애플리케이션 계층 접속, IP 주소, 포트번호URL을 통해 서버 주소와 포트 번호를 알아낼 수 있다 프로토콜 버전
웹 구성 요소프락시클라이언트와 서버 사이에서 사용자를 대신해 서버에 접근 캐시자주 찾는 것의 사본을 저장하는 특별한 프락시 서버 게이트웨이HTTP 트래픽을 다른 프로토콜로 변환 터널비 HTTP 데이터를 열어보지 않고 그대로 전달 에이전트HTTP 요청을 만들어 주는 클라이언트 프로그램 |
1. TCP 는 어떻게 신뢰성 있는 통신을 제공하는가?TCP는 클라이언트와 서버 간에 신뢰성 있는 데이터 교환(오류 없는 데이터 전송, 순서 보장, 조각나지 않는 데이터 스트림)을 보장하는데, 이게 가능한 이유가 뭘까?
2. keep-alive 커넥션이란?“Keep-Alive”는 HTTP 통신에서 사용되는 기능으로, 지속적인 연결(Persistent Connection)을 유지하는 기법 중 하나이다. HTTP1.0+부터 지원되었으며, HTTP/1.1부터는 기본적으로 활성화되어 있다. 하나의 TCP connection을 활용해 여러 개의 HTTP 요청/응답을 주고받을 수 있게 해준다. 기존에는 한 요청에 응답할 때마다 connection을 close하도록 설정돼있었는데, keep-alive 옵션은 connection을 유지할 수 있게 해준다.
|
No description provided.
The text was updated successfully, but these errors were encountered: