- 저자: 데이빗 고울리, 브라이언 토티, 마조리 세이어, 세일루 레디, 안슈 아가왈
- 웹은 어떻게 동작하는가
마님 | 굉스터 | 진채영 | 김은채 |
- 스터디는 매주 금요일 오후 8시 진행
- 매주 2개의 장 진행
- 약 1시간 진행 예상
- 30분(요약, 추가정리 내용 공유) + 30분(토론, 의견 나누기)
- 토론 주제 정하는 사람이 공부 내용 정리 발표
- 토론 주제는 수 자정까지 Discord 공지로 공유
- 토론 내용은 주제 정한 사람이 정리 후 업로드
- 순서
- 김은채
- 굉스터
- 마님
- 진채영
- 스터디 일정 변경, 취소는 최소 하루 전 연락
- 2연속 취소 시 벌금 50,000원
- 커밋 메시지 형식
- [1장] HTTP 개관 - 채영
- [20장] 리다이렉션과 부하 균형 - 은채
- 1.1 HTTP: 인터넷의 멀티미디어 배달부
- 1.2 웹 클라이언트와 서버
- 1.3 리소스
- 1.4 트랜잭션
- 1.5 메시지
- 1.6 TCP 커넥션
- 1.7 프로토콜 버전
- 1.8 웹의 구성요소
- 1.9 시작의 끝
- 1.10 추가 정보
- 2.1 인터넷의 리소스 탐색하기
- 2.2 URL 문법
- 2.3 단축 URL
- 2.4 안전하지 않은 문자
- 2.5 스킴의 바다
- 2.6 미래
- 2.7 추가 정보
- 3.1 메시지의 흐름
- 3.2 메시지의 각 부분
- 3.3 메서드
- 3.4 상태 코드
- 3.5 헤더
- 3.6 추가 정보
- 4.1 TCP 커넥션
- 4.2 TCP의 성능에 대한 고려
- 4.3 HTTP 커넥션 관리
- 4.4 병렬 커넥션
- 4.5 지속 커넥션
- 4.6 파이프라인 커넥션
- 4.7 커넥션 끊기에 대한 미스터리
- 4.8 추가 정보
- 5.1 다채로운 웹 서버
- 5.2 간단한 펄 웹 서버
- 5.3 진짜 웹 서버가 하는 일
- 5.4 단계 1: 클라이언트 커넥션 수락
- 5.5 단계 2: 요청 메시지 수신
- 5.6 단계 3: 요청 처리
- 5.7 단계 4: 리소스의 매핑과 접근
- 5.8 단계 5: 응답 만들기
- 5.9 단계 6: 응답 보내기
- 5.10 단계 7: 로깅
- 5.11 추가 정보
- 6.1 웹 중개자
- 6.2 왜 프락시를 사용하는가?
- 6.3 프락시는 어디에 있는가?
- 6.4 클라이언트 프락시 설정
- 6.5 프락시 요청의 미묘한 특징들
- 6.6 메시지 추적
- 6.7 프락시 인증
- 6.8 프락시 상호운용성
- 6.9 추가 정보
- 7.1 불필요한 데이터 전송
- 7.2 대역폭 병목
- 7.3 갑작스런 요청 쇄도(Flash Crowds)
- 7.4 거리로 인한 지연
- 7.5 적중과 부적중
- 7.6 캐시 토폴로지
- 7.7 캐시 처리 단계
- 7.8 사본을 신선하게 유지하기
- 7.9 캐시 제어
- 7.10 캐시 제어 설정
- 7.11 자세한 알고리즘
- 7.12 캐시와 광고
- 7.13 추가 정보
- 8.1 게이트웨이
- 8.2 프로토콜 게이트웨이
- 8.3 리소스 게이트웨이
- 8.4 애플리케이션 인터페이스와 웹 서비스
- 8.5 터널
- 8.6 릴레이
- 8.7 추가 정보
- 9.1 크롤러와 크롤링
- 9.2 로봇의 HTTP
- 9.3 부적절하게 동작하는 로봇들
- 9.4 로봇 차단하기
- 9.5 로봇 에티켓
- 9.6 검색엔진
- 9.7 추가 정보
- 10.1 HTTP/2.0의 등장 배경
- 10.2 개요
- 10.3 HTTP/1.1과의 차이점
- 10.4 알려진 보안 이슈
- 10.5 추가 정보
- 11.1 개별 접촉
- 11.2 HTTP 헤더
- 11.3 클라이언트 IP 주소
- 11.4 사용자 로그인
- 11.5 뚱뚱한 URL
- 11.6 쿠키
- 11.7 추가 정보
- 12.1 인증
- 12.2 기본 인증
- 12.3 기본 인증의 보안 결함
- 12.4 추가 정보
- 13.1 다이제스트 인증의 개선점
- 13.2 요약 계산
- 13.3 보호 수준(Quality of Protection) 향상
- 13.4 실제 상황에 대한 고려
- 13.5 보안에 대한 고려사항
- 13.6 추가 정보
- 14.1 HTTP를 안전하게 만들기
- 14.1.1 HTTPS
- 14.2 디지털 암호학
- 14.3 대칭키 암호법
- 14.4 공개키 암호법
- 14.5 디지털 서명
- 14.6 디지털 인증서
- 14.7 HTTPS의 세부사항
- 14.8 진짜 HTTPS 클라이언트
- 14.9 프락시를 통한 보안 트래픽 터널링
- 14.10 추가 정보 388
- 15.1 메시지는 컨테이너, 엔터티는 화물
- 15.2 Content-Length: 엔터티의 길이
- 15.3 엔터티 요약
- 15.4 미디어 타입과 차셋(Charset)
- 15.5 콘텐츠 인코딩
- 15.6 전송 인코딩과 청크 인코딩
- 15.7 시간에 따라 바뀌는 인스턴스
- 15.8 검사기와 신선도
- 15.9 범위 요청
- 15.10 델타 인코딩
- 15.11 추가 정보
- 16.1 국제적인 콘텐츠를 다루기 위해 필요한 HTTP 지원
- 16.2 문자집합과 HTTP
- 16.3 다중언어 문자 인코딩에 대한 지침
- 16.4 언어 태그와 HTTP
- 16.5 국제화된 URI
- 16.6 기타 고려사항
- 16.7 추가 정보
- 17.1 내용 협상 기법
- 17.2 클라이언트 주도 협상
- 17.3 서버 주도 협상
- 17.4 투명 협상
- 17.5 트랜스코딩
- 17.6 다음 단계
- 17.7 추가 정보
- 18.1 호스팅 서비스
- 18.2 가상 호스팅
- 18.3 안정적인 웹 사이트 만들기
- 18.4 웹 사이트 빠르게 만들기
- 18.5 추가 정보
- 19.1 배포 지원을 위한 FrontPage 서버 확장
- 19.2 WebDAV와 공동 저작
- 19.3 추가 정보
- 20.1 왜 리다이렉트인가?
- 20.2 리다이렉트 할 곳
- 20.3 리다이렉션 프로토콜의 개요
- 20.4 일반적인 리다이렉션 방법
- 20.5 프락시 리다이렉션 방법
- 20.6 캐시 리다이렉션 방법
- 20.7 인터넷 캐시 프로토콜
- 20.8 캐시 배열 라우팅 프로토콜
- 20.9 하이퍼텍스트 캐싱 프로토콜
- 20.10 추가 정보
- 21.1 로그란 무엇인가?
- 21.2 로그 포맷
- 21.3 적중 계량하기
- 21.4 개인 정보 보호에 대해
- 21.5 추가 정보
- B.1 상태 코드 분류
- B.2 상태 코드
- D.1 배경
- D.2 MIME 타입 구조
- D.3 MIME 타입 IANA 등록
- D.4 미디어 타입 표
- E.1 Base-64 인코딩은 이진 데이터를 안전하게 만들어준다
- E.2 8비트를 6비트로
- E.3 Base-64 패딩
- E.4 펄 구현
- E.5 추가 정보
- F.1 다이제스트 WWW-Authenticate 지시자들
- F.2 다이제스트 Authorization 지시자들
- F.3 다이제스트 Authentication-Info 지시자들
- F.4 참조 코드
- G.1 첫 번째 서브태그 규칙
- G.2 두 번째 서브태그 규칙
- G.3 IANA에 등록된 언어 태그들
- G.4 ISO 639 언어 코드
- G.5 ISO 3166 국가 코드
- G.6 언어 관리 단체