Study 30

[HTTP 완벽 가이드] 10장 : HTTP/2.0

1. 프레임 R : 예약된 2비트. 값의 의미가 정의되어 있지 않으며 0이 어야한다. 길이 : 페이로드의 길이를 나타내는 14비트 무부호 정수. 프레임 헤더는 포함되지 않는다 종류 : 프레임의 종류 플래그 : 8비트 플래그. 프레임의 종류에 따라 값이 다르다 R : 예약된 1비트 스트림 식별자 ; 31비트. 특별히 0은 커넥션 전체와 연관된 프레임을 의미한다 2. 스트림과 멀티플렉싱 하나의 커넥션에 여러 개의 스트림이 동시에 열릴 수 있다 우선순위도 가질 수 있다. 31비트의 무부호정수로 된 고유한 식별자를 갖는다 서버와 클라이언트는 스트림을 상대방과 협상 없이 일방적으로 만든다 3. 헤더 압축 헤더는 HPACK명세에 정의된 헤더 압축 방법으로 압축한 뒤 '헤더 블록 조각'들로 쪼개져서 전송된다 받는 쪽..

Study 2021.01.14

[HTTP 완벽 가이드] 9장 : 웹 로봇

9.1 크롤러와 크롤링 웹 크롤러는, 먼저 웹페이지를 한 개 가져오고, 그 다음 그 페이지가 가리키는 모든 웹페이지를 가져오고, 다시 그 페이지들이 가리키는 모든 웹페이지들을 가져오는 이러한 일을 재귀적으로 반복하는 방식으로 웹을 순화하는 로봇이다 9.1.1 어디에서 시작하는가: '루트 집합' 크롤러가 방문을 시작하는 URL들의초기 집합은 루트 집합이라고 한다. 루트 집합을 고를 때, 모든 링크를 크롤링하면 결과적으로 관심있는 웹페이지들의 대부분을 가져 오게 될 수 있도록 해야한다 9.1.2 링크 추출과 상태 링크 정상화 크롤러는 검색한 각 페이지 안에 들어있는 URL 링크들을 파싱해서 크롤링할 페이지들의 목록에 추가해야한다 9.1.3 순환 피하기 로봇들은 순환을 피하기 위해 반드시 그들이 어디를 방문했..

Study 2021.01.13

[HTTP 완벽 가이드] 8장 : 통합점-게이트웨이, 터널, 릴레이

8.1 게이트웨이 게이트웨이는 웹에 더 복잡한 리소스를 올려야 할 필요가 생기면서, 모든 리소스를 한 개의 애플리케이션으로만 처리할 수 없다는 문제를 해결하기 위해 생겨났다. 게이트웨이는 리소스를 받기위한 경로를 연결하는 연결을 한다 웹 게이트웨이의 세 가지 예 HTTP/FTP 서버 측 FTP 게이트웨이 HTTPS/HTTP 클라이언트 측 보안 게이트웨이 HTTP/CGI 서버 특 애플리케이션 게이트웨이 8.1.1 클라이언트 측 게이트웨이와 서버 측 게이트웨이 웹 게이트웨이의 표시 : / 서버 측 게이트웨이는 클라이언트와 HTTP로 통신하고, 서버와는 외래 프로토콜로 통신한다 클라이언트 측 게이트웨이는 클라이언트와 외래 프로토콜로 통신하고, 서버와는 HTTP로 통신한다 8.2 프로토콜 게이트웨이 → 브라우저..

Study 2021.01.12

[HTTP 완벽 가이드] 7장 : 캐시

이 장에서 다룰 내용 어떻게 캐시가 성능을 개선하고 비용을 줄이는가 캐시 효과를 극대화 하기 위해 캐시를 어디에 위치시켜야 하는가 어떻게 HTTP가 캐시된 사본을 신선하게 유지하는가 어떻게 캐시가 다른 캐시나 서버와 상호작용하는가\ 7.1 불필요한 데이터 전송 서버 응답을 캐시에 보관하므로, 캐시된 사본이 뒤이은 요청에 대한 응답으로 사용되어 원 서버가 중복해서 트래픽을 주고받는 낭비가 줄어듬 7.2 대역폭 병목 캐시는 광역 통신망의 제한된 대역폭으로 인한 병목을 개선할 수 있다. 먼 지역의 파일을 가져오는것보다, 같은 지역의 캐시된 파일을 가져오는 것이 더 빠르다 대역폭은 속도에 영향을 주는 네트워크 종류와 문서 크기에 따라 전송 시간이 차이난다 7.3 갑작스런 요청 쇄도(Flash Crowds) 캐싱..

Study 2021.01.11

[HTTP 완벽 가이드] 6장 : 프락시

이 장에서 다룰 내용 HTTP 프락시와 웹 게이트웨이 비교 프락시가 실제 네트워크에 어떻게 배치되어 있는지 트래픽이 어떻게 프락시 서버로 가게 되는지 브라우저에서 프락시를 사용하려면 어떻게 설정해야 하는지 HTTP 프락시 요청이 서버 요청과 어떻게 다른지 메시지의 경로를 Via 헤더와 TRACE 메서드를 이용해 기록하는 방법 프락시에 기반한 HTTP 접근 제어 1 웹 중개자 웹 프락시 서버는 클라이언트 입장에서 트랜잭션을 수행하는 중개인이다 프락시는 서버이면서 동시에 클라이언트 입장을 수행한다 1.1 개인 프락시와 공유 프락시 공용 프락시 여러 클라이언트가 함께 사용하는 프락시 대부분의 프락시에서 사용한다 개인 프락시 하나의 클라이언트만을 위한 프락시 흔하진 않지만 클라이언트 컴퓨터에서 직접 실행되는 형..

Study 2020.12.18

[HTTP 완벽 가이드] 5장 : 웹 서버

이 장에서 알아볼 내용 여러 종류의 소프트웨어 및 하드웨어 웹 서버에 대해 조사한다 HTTP 통신을 진단해주는 간단한 웹 서버를 펄(Perl)로 작성해본다 어떻게 웹 서버가 HTTP 트랜잭션을 처리하는지 단계별로 설명한다 1 다채로운 웹 서버 1.1 웹 서버 구현 HTTP 프로토콜을 구현 웹 리소스를 관리 웹 서버 관리 TCP 커넥션 관리에 대한 책임을 운영체제와 나눠 갖음 1.2 다목적 소프트웨어 웹 서버 거의 모든 컴퓨터와 운영체제에서 동작 1.3 임베디드 웹 서버 일반 소비자용 제품에 내장될 목적으로 만들어진 작은 웹 서버 ex) 프린터나 가전제품 2 간단한 펄 웹 서버 펄 웹 서버 프로그램은 클라이언트와 프락시 간의 상호작용 테스트에 유용한 진단 툴 HTTP 디버깅을 위해 사용 펄 서버 프로그램은..

Study 2020.12.17

[HTTP 완벽 가이드] 4장 : 커넥션 관리

전 세계 모든 HTTP통신은, 지구 상의 컴퓨터와 네트워크 장비에서 널리 쓰이고 있는 패킷 교환 네트워크 프로토콜들의 계층화된 집합인 TCP/IP를 통해 이루어진다 1. TCP 커넥션 1.1 신뢰할 수 있는 데이터 전송 통로인 TCP TCP 커넥션은 인터넷을 안정적으로 연결해준다. TCP는 충돌 없이 순서에 맞게 HTTP데이터를 전달한다 웹브라우저가 TCP커넥션을 통해서 웹 서버에 요청을 보낸다 브라우저가 www.joes-hardware.com라는 호스트명을 추출한다 브라우저가 이 호스트 명에 대한 IP주소를 찾는다 브라우저가 포트 번호(80)를 얻는다 브라우저가 202.43.78.3의 80 포트로 TCP 커넥션을 생성한다 브라우저가 서버로 HTTP GET 요청 메시지를 보낸다 브라우저가 서버에서 온 H..

Study 2020.12.16

[HTTP 완벽 가이드] 3장 : HTTP 메시지

1. 메시지의 흐름 HTTP 메시지 : HTTP 애플리케이션 간에 주고받은 데이터의 블록들 1.1 메시지는 원 서버 방향을 인바운드로 하여 송신된다 인바운드 : 서버방향으로 이동하는 것 아웃바운드 : 사용자 에이전트 방향(브라우저) 로 이동하는 것 1.2 다운스트림으로 흐르는 메시지 메시지는 결코 업스트림으로 흐르지 않는다 2. 메시지의 각 부분 시작줄 : 이것이 어떤 메시지인지 서술 헤더 : 속성 본문 : 데이터(없을 수도 있음) 2.1 메시지 문법 요청 메시지의 형식 응답 메시지의 형식 메서드 요청URL 버전 : 형식 → HTTP/. 상태 코드 : 요청 중에 무엇이 일어났는지 설명하는 세 자리의 숫자 사유 구절 : 숫자로 된 상태 코드의 의미를 사람이 이해할수 있게 설명해주는 짧은 문구 헤더들 : 이..

Study 2020.12.15

[HTTP 완벽 가이드] 2장 : URL과 리소스

2.1 인터넷의 리소스 탐색하기 URL은 브라우저가 정보를 찾는데 필요한 리소스의 위치를 가리키며, URI라고 불리는 더 일반화된 부류의 부분집합이다. URL은 애플리케이션이 리소스에 접근할 수 있는 방법을 제공한다. 당신과 브라우저에게 정보 찾는 데 필요한 모든 것을 제공하며, 당신이 언하는 리소스가 어디에 위치하고 어떻게 가져오는지 정의한다. 2.2 URL 문법 ://:@:/;?# 2.2.1 스킴 리소스를 가져오려면 어떤 프로토콜을 사용하여 서버에 접근해야 하는지 가리킨다 2.2.2 사용자 이름 몇몇 스킵은 리소스에 접근을 하기위해 사용자 이름을 필요로 한다 2.2.3 비밀번호 사용자의 비밀번호를 가리키며, 사용자 이름에 콜론으로 이어서 기술한다 2.2.4 호스트 리소스를 호스팅하는 서버의 호스트 명..

Study 2020.12.14

[HTTP 완벽 가이드] 1장 : HTTP 개관

본 내용은 HTTP 완벽 가이드 책을 읽고 정리한 내용입니다 1.1 HTTP: 인터넷의 멀티미디어 배달부 1.2 웹 클라이언트와 서버 웹 서버는 HTTP 프로토콜로 의사소통하기 때문에 보통 HTTP서버라고 불린다. 클라이언트는 서버에세 HTTP요청을 보내고 서버는 요청된 데이터를 HTTP응답으로 돌려준다. HTTP클라이언트와 HTTP 서버는 월드 와이드 웹의 기본 요소다 1.3 리소스 웹 리소스란 웹에 콘텐츠를 제공하는 모든 것을 말한다 1.3.1 미디어 타입 웹 서버는 데이터 콘텐츠와 함께 MIME타입을 보내준다. MIME는 데이터 포맷 라벨이다 1.3.2 URI URI는 프로토콜, 서버, 리소스를 명시한다 1.3.3 URL URL은 특정 서버의 한 리소스에 대한 구체적인 위치를 설명한다 1.3.4 U..

Study 2020.12.12