이번 포스팅에서는 HTTP 완벽가이드 책을 활용하였습니다. 7장 Cache 이 포스팅에서는 웹 캐시를 집중적으로 다룬다. 캐싱의 숨겨진 요소들에 대해서는 이 링크를 참조하는 것이 좋겠다. 네트워크를 통해 데이터를 가져오는 것은 하드디스크나 메모리에 비해서 상당히 느리다. 그래서 웹 브라우저는 웹 페이지에 접속할 때 HTML, CSS, JS, Image 등 정적 파일을 캐싱해뒀다가 재사용한다. - 브라우저 캐시 활용 웹 캐시는 자주 쓰이는 문서의 사본을 자동으로 보관하는 HTTP 장치이다. 웹 요청이 캐시에 도착했을 때, 캐시된 로컬 사본이 존재한다면(cache hit) Origin Server가 아니라 그 캐시로부터 제공된다. - HTTP 캐싱 * 웹 캐시 이점 - 캐시는 불필요한 데이터 전송을 줄여서,..
이번 포스팅에서는 HTTP 완벽가이드 책을 활용하였습니다. 5장 web server는 github의 구현코드를 확인 바랍니다. 추가적으로 Connection 관리 학습을 하며 TCP 밑단 프로토콜 학습을 위한 코드도 작성하였으니 테스트 코드를 돌려보시거나, 직접 코드 수정 후 wireshark로 확인하실 수 있습니다. 6장 Proxy 1. Proxy란? 같은 프로토콜을 사용하는 둘 이상의 애플리케이션을 연결하는 용도로 사용된다. (HTTP version 변환은 가능하며, 상용 Proxy Server는 SSL, 방화벽, FTP 접근 등 웹 기반 애플리케이션을 지원하기 위해 Gateway 기능이 구현되어 있다.) * 서로 다른 프로토콜을 사용하는 둘 이상을 연결하기 위해서는 Gateway를 사용한다. 2. ..
이번 포스팅에서는 HTTP 완벽가이드, 네트워킹과 웹 성능 최적화 기법, 리눅스 커널 이야기, 와이어샤크를 활용한 실전 패킷 분석 책을 활용하였습니다. 4장 Connection 관리 4. Keep-Alive * TIME_WAIT 소켓의 문제점과 대안 패킷 유실에 따른 비정상적인 통신흐름이 발생할 수 있다. 가령, 아래 그림과 같이 마지막 ACK가 중간에 유실될 경우 FIN에 대한 ACK를 받지 못했기에 LAST-ACK상태이고, SYN 요청에 대해 RST를 보낸다. 반면, TIME_WAIT이 있을 경우에는 이상을 감지하여 한번 더 FIN 패킷을 요청한다. active closer(먼저 연결을 끊는) 쪽에서 TIME_WAIT 소켓이 생성된다. [TIME_WAIT이란] TIME_WAIT 상태란 무엇인가 · T..