HTTP 14

[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

[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