HTTP완벽가이드 19

[HTTP 완벽 가이드] 21장 : 로깅과 사용 추적

이 장에서는 로깅을 간단히 알아보고, 보통 어떤 HTTP 트랜잭션 정보를 기록하는지, 로그 포맷에는 보통 어떤 것들이 있는지 알아본다 1 . 로그란 무엇인가? 로깅을 하는 이유 : 서버나 프락시의 문제를 찾거나, 웹 사이트 접근 통계를 내려고 일반적으로 로깅하는 필드 HTTP 메서드 클라이언트 서버의 HTTP 버전 요청받은 리소스의 URL 응답의 HTTP 상태 코드 요청과 응답 메시지의 크기 트랜잭션이 일어난 시간 Referer와 User-Agent헤더 값 2. 로그 포맷 2.1 일반 로그 포맷 2.2 혼합 로그 포맷 2.3 넷스케이프 확장 로그 포맷 2.4 넷스케이프 확장 2 로그 포맷 3. 적중 계량하기 3.1 개요 적중 계량 규약은 캐시와 서버가 접근 정보를 공유하고, 사용할 수 있는 캐시 리소스의..

Study 2021.02.03

[HTTP 완벽 가이드] 20장 : 리다이렉션과 부하 균형

이 장에서는 리다이렉션 기법들과 그것들이 어떻게 동작하며 어떤 부하균형 능력을 갖고 있는지 살펴본다 1 .왜 리다이렉트인가? 리다이렉션은 최적의 분산된 콘텐츠를 찾는 것을 도와주는 기법의 집합이다 리다이렉션 장치들은 들어오는 메시지의 부하를 서버들의 집합에게 분산할 수 있다 2. 리다이렉트 할 곳 서버, 프락시, 캐시, 게이트웨이가 모두 공통적으로 서버의 특성을 갖고 있기 때문에, 많은 리다이렉션 기법이 그들 모두에서 동작한다. 그러나 어떤 리다이렉션 기술들은 특정 종류의 종단만을 위해 특별히 설계되어 일반적인 적용이 불가능하다 웹 서버는 IP별로 요청을 다룬다. 서버로의 리다이렉트란 휘발유를 찾는 모든 운전기사를 가장 가까운 주유소로 보내주는 것이다 프락시는 프로토콜별로 요청을 다룬다. 프락시의 리다이..

Study 2021.02.02

[HTTP 완벽 가이드] 18장 : 웹 호스팅

이 장에서는 웹 호스팅 서비스의 가장 중요한 속성 몇 가지와 그것들이 어떻게 HTTP 애플리케이션과 상호작용하는지 설명한다 1 .호스팅 서비스 죠의 컴퓨터 가게 온라인과 메리의 골동품 경매를 크기가 큰 웹 사이트라고 가정해보자. 죠와 메리가 직접 자체 서버를 구매하고 서버 소프트웨어를 직접 유지보수하는 대신, 죠와 메리에게 대여할 수 있는 고성능 웹 서버들로 구성된 랙을 아이린의 ISP가 가지고 있다. 죠는 아이린의 ISP가 구매해 유지보수하고 있는 전용 웹 서버를 임대한다. 아이린 ISP는 대량으로 서버 장비를 구매할 수 있으며 안정적이고 검증되었으며 비용이 저렴한 장비를 선택할 수 있다. 2. 가상 호스팅 2.1 호스트 정보가 없는 가상 서버 요청 만약 http://www.joes-hardware.c..

Study 2021.02.01

[HTTP 완벽 가이드] 17장 : 내용 협상과 트랜스코딩

이 장에서는 내용 협상이란 무엇이며 웹 애플리케이션이 어떻게 내용 협상을 수행하는지 알아볼 것이다 1 . 내용 협상 기법 서버에 있는 페이지들 중 어떤 것이 클라이언트에게 맞는지 판단하는 세 가지 다른 방법이 있다. 클라이언트 주도 -> 클라이언트가 요청을 보내면, 서버는 클라이언트에게 선택지를 보내주고 클라이언트가 선택 서버 주도 협상 -> 서버가 클라이언트의 요청 헤더를 검증해서 어떤 버전을 제공할지 결정한다 투명한 협상 -> 투명한 중간 장치(주로 프락시캐시)가 서버를 대신하여 협상한다 2. 클라이언트 주도 협상 여러 가지 버전에 대한 링크와 각각에 대한 설명이 담긴 HTML 페이지를 돌려주거나, 300 Multiple Choices 응답 코드로 HTTP/1.1 응답을 돌려주는 것이다. 첫번째 메서..

Study 2021.01.29

[HTTP 완벽 가이드] 16장 : 국제화

이 장에서는 HTTP가 어떻게 여러 언어 문자들의 체계 및 표준과 상호작용하는지 설명한다. 1 . 국제적인 콘텐츠를 다루기 위해 필요한 HTTP 지원 HTTP 메시지는 어떤 언어로 된 콘텐츠든, 이미지, 동영상 혹은 그 외 다른 종류의 미디어처럼 실어 나를 수 있다. 국제 콘텐츠를 지원하기 위해, 서버는 클라이언트에게 각 문서의 문자와 언어를 알려줘서, 클라리언트가 올바르게 문서를 이루고 있는 비트들을 문자들로 풀어내고, 올바르게 처리해서 사용자에게 콘텐츠를 제공해줄 수 있도록 할 필요가 있다. 서버는 클라이언트에게 문서의 문자와 언어를HTTP Content-Type charset 매개변수와 Content-Language 헤더를 통해 알려준다. 동시에 클라이언트는 서버에게 사용자가 어떤 언어를 이해할 수..

Study 2021.01.28

[HTTP 완벽 가이드] 15장 : 엔터티와 인코딩

이 장에서는 엔터티 및 그와 연관된 엔터티 헤더들과 그들이 웹상의 화물을 수송하기 위해 어떤 일을 하는지에 대해 논의한다. 1 . 메시지는 컨테이너, 엔터티는 화물 엔터티 본문은 가공되지 않은 날 데이터에 불과하기 때문에 엔터티 헤더는 그 데이터의 의미에 대해 설명할 필요가 있다. 10가지 주요 엔터티 헤더 필드 Content-Type : 엔터티에 의해 전달된 객체의 종류 Content-Length : 전달되는 메시지의 길이나 크기 Content-Language : 전달되는 객체와 가장 잘 대응되는 자연어 Content-Encoding : 객체 데이터에 대해 행해진 변형(압축 등) Content-Location : 요청 시점을 기준으로, 객체의 또 다른 위치 Content-Range : 만약 이 엔터티가..

Study 2021.01.25

[HTTP 완벽 가이드] 14장 : 보안 HTTP

이 장에서는 디지털 암호화를 이용해 도청이나 위조로부터 HTTP 트랜잭션을 안전하게 보호하는 기술을 제시한다 1 . HTTP를 안전하게 만들기 HTTP의 보안 버전은 효율적이고, 이식성이 좋아야 하고, 관리가 쉬워야 하며, 현실 세계의 변화에 대한 적응력이 좋아야한다. HTTP를 안전하게 만들기 위한 보안 기술 : 서버 인증, 클라이언트 인증, 무결성, 암호화, 편재성, 효율, 관리상 확장성, 적응성, 사회적 생존성 HTTPS HTTPS는 HTTP를 안전하게 만드는 방식 중에서 가장 인기 있는 것이다. URL이 https://로 시작하는 것을 보고 HTTPS방식임을 알아볼 수 있다 HTTPS는 HTTP의 하부에 전송 레벨 암호 보안 계층을 제공함으로써 동작하는데, 이 보안 계층은 안전 소켓 계층(SSL)..

Study 2021.01.21

[HTTP 완벽 가이드] 13장 : 다이제스트 인증

이 장에서는 다이제스트 인증의 이론과 실제에 대해 알아본다 1 . 다이제스트 인증의 개선점 다이제스트 인증은 널리 쓰이고 있지는 않다. 그러나 기본 인증에 내재된 보안 위험 때문에, HTTP 설계자들은 RFC2617에서 "기본 인증을 사용하는 오늘날의 모든 서비스는 가능한 한 다이제스트 인증으로 전환해야 한다" 고 조언하고 있다. 요약 사용 비밀번호를 보내는 다신, 클라이언트는 비밀번호를 비가역적으로 뒤섞은 '지문' 혹은 '요약'을 보낸다. 클라이언트와 서버는 둘다 비밀번호를 알고 있으므로, 서버는 클라이언트가 보낸 요약이 비밀번호와 알맞게 대응하는지 검사할 수 있다. 요약 함수는 매우 긴 자릿수의 숫자를 만들어내기 때문에, 찍어서 맞추는 것은 불가능하다 단방향 요약 요약 함수 중 하나인 MD5는 임의의..

Study 2021.01.20

[HTTP 완벽 가이드] 12장 : 기본 인증

이 장에서는 HTTP 인증과 그것의 기본이 되는 기본 인증을 알아본다 1 . 인증 1.1 HTTP의 인증 요구 / 응답 프레임워크 웹 에플리케이션이 HTTP 요청 메시지를 받으면, 서버는 요청을 처리하는 대신에 현재 사용자가 누구인지를 알 수 있게 비밀번호 같이 개인 정보를 요구하는 '인증 요구'로 응답할 수 있다. 사용자가 다시 요청을 보낼 때는 인증 정보를 첨부해야한다. 인증정보가 맞지 않으면 서버는 클라이언트에 다시 인증요구를 보내거나 에러를 낼 수 있다. 1.2 인증 프로토콜과 헤더 기본 인증 절차 사용자가 인증 요구를 보내면, 서버는 401 Unauthorized 응답과 함께 WWW-Authenticate 헤더를 기술해서 어디서 어떻게 인증할지 설명한다 클라이언트가 서버로 인증하려면, 인코딩된 ..

Study 2021.01.18

[HTTP 완벽가이드] 11장 : 클라이언트 식별과 쿠키

이 장에서는 서버가 통신하는 대상을 식별하는 데 사용하는 기술을 알아본다 1 . 개별 접촉 현대의 웹 사이트들은 개인화된 서비스를 제공하고 싶어한다. Amazon.com의 경우, 여러가지 방식으로 사이트를 개인화시켜서 사용자에게 제공한다. 개별 접촉의 예 개별 인사 - 사용자가 접속하면 환영 메시지를 띄우는 것 사용자 맞춤 추천 - 고객의 생일이나 고객의 흥미를 학습해 특별한 제품 제시 저장한 사용자 정보 - 고객의 주소와 신용카드 정보 저장 세션 추적 - 장바구니 기능을 위해 사용자의 상태를 저장 사용자 식별 기술의 예 사용자 식별 관련 정보를 전달하는 HTTP 헤더들 클라이언트 IP주소 추적으로 알아낸 IP 주소로 사용자를 식별 사용자 로그인 인증을 통한 사용자 식별 URL에 식별자를 포함하는 기술인..

Study 2021.01.15