Network
-
[HTTP 완벽 가이드 15장] 엔터티와 인코딩Network 2020. 6. 22. 10:31
HTTP는 콘텐츠를 나르기 위한 잘 라벨링 된 엔터티를 사용한다. 이 장에서는 엔터티 및 그와 연관된 엔터티 헤더들과 그들이 웹상의 화물을 수송하기 위해 어떤 일을 하는지에 대해 논의한다. 이 장에서 다루는 것 HTTP 데이터를 담는 컨테이너인 HTTP 메시지 엔터티의 포맷과 동작방식 어떻게 HTTP까 엔터티 본문의 크기를 기술하며, 크기를 측정하기 위해 HTTP가 무엇을 요구하는지 클라이언트가 콘텐츠를 바르게 처리할 수 있도록 제공되는 엔터티 헤더들(콘텐츠의 포맷, 문자, 언어를 기술하기 위해 사용된다) 공간을 적게 차지하고 더 안전하게 만들기 위해 발송자가 콘텐츠 데이터 포맷을 변형할 때 사용하는, 디코딩 가능한 콘텐츠 인코딩 클라이언트가 요청한 콘텐츠의 최신 버전을 가져올 수 있도록 도와주는 태그,..
-
[HTTP 완벽 가이드 14장] 보안 HTTPNetwork 2020. 6. 22. 10:29
14.1 HTTP를 안전하게 만들기 HTTP 보안 기술을 사용함으로써 얻을 수 있는 것들 서버 인증 - 클라이언트는 자신이 위조된 서버가 아닌 진짜와 통신하고 있음을 알 수 있어야 한다. 클라이언트 인증 - 서버는 자신이 가짜가 아닌 진짜 사용자와 통신하고 있음을 알 수 있어야 한다. 무결성 - 클라이언트와 서버는 그들의 데이터가 위조되는 것으로부터 안전해야 한다. 암호화 - 클라이언트와 서버는 제 3자의 도청에 대해 걱정 없이 서로 통신할 수 있어야 한다. 효율 - 저렴한 클라이언트나 서버도 이용할 수 있도록 알고리즘은 충분히 빨라야 한다. 편재성 - 프로토콜은 거의 모든 클라이언트와 서버에서 지원되어야 한다. 관리상 확장성 - 누구든 어디서든 보안 통신을 할 수 있어야 한다. 적응성 - 현재 알려진 ..
-
[HTTP 완벽 가이드 12장] 기본 인증Network 2020. 6. 22. 10:28
12.1 인증 1) HTTP의 인증요구/응답 프레임워크 HTTP는 사용자 인증을 하는 데 사용하는 자체 인증요구/응답 프레임워크를 제공한다. 웹 애플리케이션이 HTTP 요청 메시지를 받으면, 서버는 요청을 처리하는 대신에 현재 사용자를 식별할 수있는 '인증 요구'로 응답할 수 있다. 인증 요구 응답을 받은 사용자는 다시 요청을 보낼 때 인증 정보(사용자 이름과 패시워드)를 첨부해야 한다. 2) 인증 프로토콜과 헤더 HTTP는 필요에 따라 고쳐 쓸 수 있는 제어 헤더를 통해, 다른 인증 프로토콜에 맞추어 확장할 수 있는 프레임워크를 제공한다. 단계 헤더 설명 메서드/상태 요청 첫 번째 요청에는 인증 정보가 없다 GET 인증 요구 WWW-Authenticate 서버는 사용자에게 인증을 요구하며..
-
[HTTP 완벽 가이드 11장] 클라이언트 식별과 쿠키Network 2020. 6. 22. 10:26
웹 서버는 다른 수천 개의 클라이언트들과 동시에 동신하며, 이 익명의 클라이언트들로부터 받는 모든 요청을 처리할 뿐만 아니라 클라이언트를 추적해야 할 때도 있다. 이 장에서는 서버가 통신하는 대상을 식별하는데 사용하는 기술을 알아본다. 11.1 개별 접촉 HTTP는 익명으로 상태가 없고, 요청과 응답으로 통신하는 프로토콜이다. 현대의 웹 사이트들은 개인화된 서비스를 제공하고 싶어한다. 사용자에 대해 더 많은 것을 알고싶어 하고 사용자들이 브라우징하는 것을 기록하고 싶어한다. 여러 유명한 온라인 쇼핑 사이트는 여러가지 방식으로 사이트를 개인화시켜서 사용자에게 제공한다. 개별 인사 온라인 쇼핑이 개인에게 맞춰져 있는 것처럼 느끼게 하려고 사용자에게 특화된 메시지나 페이지 내용을 만든다. 사용자 맞춤 추천 고..
-
[HTTP 완벽 가이드 7장] 캐시Network 2020. 6. 22. 10:24
웹 캐시는 자주 쓰이는 문서의 사본은 자동으로 보관하는 HTTP 장치 캐시가 주는 혜택 캐시는 불필요한 데이터 전송을 줄여서, 네트워크 요금으로 인한 비용을 줄여준다. 캐시는 네트워크 병목을 줄여준다. 대역폭을 늘리지 않고도 페이지를 빨리 불러올 수 있게 된다. 캐시는 원 서버에 대한 요청을 줄여준다. 서버는 부하를 줄일 수 있으며 더 빨리 응답할 수 있게 된다. 페이지를 먼 곳에서 불러올수록 시간이 많이 걸리는데, 캐시는 거리로 인한 지연을 줄여준다. 7.1 불필요한 데이터 전송 복수의 클라이언트가 자주 쓰이는 원 서버 페이지에 접근할 때, 서버는 같은 문서를 클라이언트들에게 각각 한 번씩 전송한다. 똑같은 바이트들이 네트워크를 통해 계속 반복해서 이동한다. 이 불필요한 데이터는 네트워크 대역폭을 잡아..
-
[HTTP 완벽 가이드 6장] 프락시Network 2020. 6. 22. 10:22
프락시는 클라이언트와 서버 사이에 위치하여 그들 사이의 HTTP 메시지를 정리하는 중개인 이 장에서 배울 것 HTTP 프락시와 웹 게이트웨이를 비교하고 HTTP 프락시가 어떻게 배치되는지 설명한다. 프락시가 실제 네트워크에 어떻게 배치되어 있는지, 트래픽이 어떻게 프락시 서버로 가게 되는지 설명한다. 브라우저에서 프락시를 사용하려면 어떻게 설정해야 하는지 설명한다. HTTP 프락시 요청이 서버 요청과 어떻게 다른지, 프락시가 어떻게 브라우저의 동작을 바꾸는지 보여준다. 프락시 서버들을 통과하는 메시지의 경로를, Via 헤더와 TRACE 메서드를 이용해 기록하는 방법을 설명한다. 프락시에 기반한 HTTP 접근 제어를 설명한다. 프락시가 클라이언트와 서버 사이에서 어떻게 상호작용 할 수 있는지 설명한다. 6..
-
[HTTP 완벽 가이드 5장] 웹 서버Network 2020. 6. 22. 10:19
이 장에서 배울 것 여러 종류의 소프트웨어 및 하드웨어 웹 서버에 대해 조사한다. HTTP 통신을 진단해주는 간단한 웹 서버를 펄(Perl)로 작성해본다. 어떻게 웹 서버가 HTTP 트랜잭션을 처리하는지 단계별로 설명한다. 5.1 다채로운 웹 서버 '웹 서버'라는 용어는 웹 서버 소프트웨어와 웹 페이지 제공에 특화된 장비 양쪽 모두를 가리킨다. 다양한 웹 서버는 기능, 형태, 크기는 모두 달라도 리소스에 대한 HTTP 요청을 받아서 클라이언트에게 콘텐츠를 돌려주는 것은 모두 똑같다. 1) 웹 서버 구현 웹 서버는 HTTP 및 그와 관련된 TCP 처리를 구현한 것이다. 웹 서버는 HTTP 프로토콜로 구현하고, 웹 리소스를 관리하고, 웹 서버 관리 기능을 제공한다. 2) 다목적 소프트웨어 웹 ..
-
[HTTP 완벽 가이드 4장] 커넥션 관리Network 2020. 6. 22. 10:17
이 장에서 배울 것 HTTP는 어떻게 TCP 커넥션을 사용하는가 TCP 커넥션의 지연, 병목, 막힘 병렬 커넥션, keep-alive 커넥션, 커넥션 파이프라인을 활용한 HTTP의 최적화 커넥션 관리를 위해 따라야 할 규칙들 4.1 TCP 커넥션 전 세계 모든 HTTP 통신은 패킷 교환 네트워크 프로토콜들의 계층화된 집합인 TCP/IP를 통해 이루어진다. 세계 어디에서든 클라이언트와 서버는 TCP/IP 커넥션을 맺을 수 있다. 일단 커넥션이 맺어지면 클라이언트와 서버간에 주고받는 메시지는 안전하게 전달된다. 패킷 교환(Packet switching)이란? 컴퓨터 네트워크와 통신의 방식 중 하나로 현재 가장 많은 사람들이 사용하는 통신 방식이다. 작은 블록의 패킷으로 데이터를 전송하며 데이터를 전송하는 동..