전체 글 239

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

1. 국제적인 콘텐츠를 다루기 위해 필요한 HTTP 지원HTTP 메시지는 어떤 언어로된 콘텐츠, 이미지, 동영상 혹은 그외 다른 종류의 미디어를 상자처럼 실어 나를 수 있어, HTTP에서 엔터티 본문이란 그저 비트들로 가득 찬 상자에 불과하다.  국제 콘텐츠를 지원하기 위해, 서버는 클라이언트에게 각 문서의 문자와 언어를 알려주어, 클라이언트가 올바르게 풀어내고, 처리해서 제공하도록 할 필요가 있다. 서버는 클라이언트에게 문서의 문자와 언어를 Content-Type charset 매게변수와 Content-Language 헤더를 통해서 알려준다.클라이언트는 서버에게 자신이 어떤 차셋 인코딩 알고리즘들과 언어들을 이해하며, 어떤 것을 선호하는지 Accept-Charset과 Accept-Language 헤더를..

FE/BOOK 2025.01.22

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

더보기엔터티(Entity)란 무엇인가요?**엔터티(Entity)**는 데이터베이스나 소프트웨어 개발에서 사용되는 개념으로, 독립적으로 존재하는 객체 또는 데이터 단위를 의미합니다. 엔터티는 실제 세계의 개념, 사물, 사람, 또는 이벤트를 표현할 수 있습니다. HTTP가 보장하는 것- 객체는 올바르게 식별되므로 브라우저나 다른 클라리언트는 콘텐츠를 바르게 처리할 수 있다. - 객체는 올바르게 압축이 풀릴 것이다. - 객체는 항상 최신이다. - 사용자의 요구를 만족할 것이다. - 네트워크 사이를 빠르고 효율적으로 이동할 것이다. - 조작되지 않고 온전하게 도착할 것이다.  HTTP는 콘텐츠를 나르기 위해 라벨링된 엔터티를 사용한다.  1. 메지지는 컨테이너, 엔터티는 화물HTTP 메시지를 컨테이너라고 한다면..

FE/BOOK 2025.01.15

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

HTTP의 보안버전은 효율적이고, 이식성이 좋아야하고, 관리가 쉽고, 현실 변화의 적용력이 좋아야 한다. HTTP보안에 대한 특징 1. HTTPS 모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기 전에 암호화 한다. HTTP 하부에 전송 레벨 암호 보안 계층을 제공함으로써 동작하는데, 이 보안 계층은 안전 소켓 계층 (SSL) 또는 그를 계승한 전송 계층 보안(TLS)를 이용하여 구현된다. 인코딩 및 디코딩은 보안계층에서 일어나기 때문에 HTTPS를 사용하기 위해 클라이언트와 서버가 프로토콜을 처리하는 로직을 크게 변경할 필요는 없다.더보기SSL (Secure Sockets Layer)정의: 인터넷 통신을 암호화하여 데이터를 안전하게 전송하기 위해 설계된 프로토콜입니다.역할: 클라이언트(예: 웹 브..

FE/BOOK 2025.01.15

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

다이제스트 인증은 기본 인증에서 결함을 수정한 인증 방식으로 널리 쓰이지는 않지만, 여전히 유용한 정보이다.다이제스트 인증이 가장 안전한 프로토콜은 아니다. 하지만 기본 인증 보다는 강력하다.하지만 안전한 HTTP트렌젝션을 위한 많은 요구사항을 만족하려면, TSL와 HTTPS가 더 적합한 프로토콜이다.  1. 기존 인증보다 나은 개선점a. 비번을 네트워크 평문으로 보내지 않는다b. 인증 체결을 가로채는 악의적인 사람을 차단한다 c. 메시지 내용 위조를 막을 수 있다d. 알려진 공격을 막을 수 있다 1.1 비번 지키미비번을 네트워크로 보내는 대신, 클라이언트는 비번을 비가역적으로 뒤섞은 '지문' 혹은 '요악'을 보낸다. 클라이언트 & 서버는 둘다 비번을 알고있기 때문에 대응이 가능하기 때문에 이런 작업이 ..

FE/BOOK 2025.01.10

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

웹 애플리케이션이 HTTP 요청 메시지를 받으면, 서버는 요청을 처리하는 대신에 현재 사용자가 누구인지 알 수 있게 개인 정보를 요구하는 인증 요구로 응답할 수 있다.클라이언트가 서버에 요청하면, 서버는 401응답과 함께 www-Authenticate 헤더를 기술해서 어디서 어떻게 인증해야 하는지 설명한다.클라이언트는 인코딩된 비번과 그 외 인증 파라미터를 Authroization 헤더에 담아서 요청을 보내고,성공적으로 완료되면 서버는 정상적인 상태 코드를 반환한다. HTTP는 각 리소스마다 다른 접근 조건을 다룰때는 기밀문서 보안영역(realm) 그룹으로 나눈다. Base-64 인코딩 인증사용자의 이름과 비밀번호를 콜론으로 이어서 합치고, base-64인코딩 메서드를 사용해 인코딩 한다. Base-64..

FE/BOOK 2025.01.02

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

HTTP가 사용자를 식별하는데 사용하는 기술들 1. HTTP헤더 다양한 헤더를 통해서 사용자에 대한 정보를 알 수있다. 악의적인 서버가 From헤더에 있는 이메일 주소를 모아서 스팸 메일을 발 송 하는 문제가 있어서 From헤더를 보내는 브라우저는 많지 않다.웹로복은 데이터르를 수집 하는 과정에 의도치 않게 웹사이드에 문제를 일으키는 경우 항의메일을 보낼 수 있도록 From헤더를 기술하기도 한다.  user-agent는 사용자가 쓰고있는 브라우저의 이름과 버전정보, 때로는 운영체제에 대한 정보까지 포함해서 알려주기도 한다. 특정 브라우저에 동작에 관한 처리를 하기엔 좋지만, 콘텐츠를 최적화 하기에 유용한 정보는 아니다. 2. 클라이언트IP주소클라이언트의 IP주소는 보통 헤더에는 없지만, HTTP요청을 보..

FE/BOOK 2025.01.02

[HTTP 완벽가이드] 10장 HTTP/2.0

등장배경http/1.1은 구현의 단순성과 접근성에 기조를 두고 최적화 되었기 때문에 성능의 희생은 불가피 했다. 커넥션 하나를 통해서 하나의 요청, 하나의 응답을 받는 메시지 교환 방식은 단순하지만, 회전지연을 피할 수 없었다.문제를 해결하기 위해서 병렬커넥션, 파이프라인 커넥션이 도입되었지만 근본적 해결책은 아니였다. 여러 곳에서 다양한 프로토콜을 제안해왔다. ( 로이필딩의 WAKA, 마이크로소프트의 S+M, 구글의 SPDY 등)2012년에 SPDY를 기반으로 한 HTTP/2.0을 설계하기로 결정했다. HTTP/2.0서버와 클라이언트 사이의 TCP커넥션 위에서 동작하고, 커넥션 초기화는 클라이언트이다. 요청과 응답은 길이가 정의된 한개 이상의 프레임에 담기고, 헤더는 압축되어 담긴다.서버는 클라이언트에..

FE/BOOK 2025.01.02

[HTTP 완벽가이드] 9장 웹로봇

웹로봇사람과의 상호작용 없이 연속된 웹 트랜잭션을 자동으로 수행하는 소프트웨어 프로그램이다.각 방식에 따라 크롤러, 스파이더, 윌, 봇 등 다양한 이름으로 불린다. 크롤러 & 크롤링웹 페이지 한개를 가져오고, 그 페이지가 가르키는 모든 웹 페이지를 가져오는 일을 재귀적으로 반복하는 방식으로 웹을 순화하는 로봇이다. 크롤러가 방문을 시작하는 URL들의 초기 집합은 루트집합(root set)이라 불린다.루트 집합을 고를때는 모든 링크를 크롤링 가능하도록 골라야 한다. (결과적으로 웹페이지들의 대부분을 가지고 올 수 있도록)대부분을 커버하기 위해 루트집합에 너무 많은 페이지가 있을 필요가 없다. 크롤러는 검색한 각 페이지 안에 들어있는 URL링크들을 파싱해서 크롤링할 페이지들의 목록에 추가한다.크롤링을 할때 ..

FE/BOOK 2024.12.24