HTTP 기본

HTTP는 확장 가능한 프로토콜로 리소스 및 URI(Uniform Resource Identifier), 간단한 메시지 구조, 클라이언트-서버 통신 흐름과 같은 개념에 의존합니다. 이러한 기본 개념을 토대로, 새로운 HTTP 메서드나 헤더의 생성을 통해 새로운 기능과 새로운 의미를 더하는 수많은 확장들이 수년간 생겨났습니다.

글 목록

HTTP의 개요

HTTP는 무엇이고 웹 아키텍처에서 그 역할은 무엇인지, 프로토콜 스택에서의 위치를 서술하고 있습니다.

HTTP의 진화

HTTP는 1990년대 초반에 만들어지고 여러번 확장되어 왔습니다. 이 항목에서는 HTTP의 역사에 대해서 훑어보고 HTTP/0.9, HTTP/1.0, HTTP/1.1 그리고 수년에 걸쳐 중요하지는 않지만 새로운 기능이 소개된 현대의 HTTP/2에 대해서 서술하고 있습니다.

리소스와 URIs

리소스에 대한 개념, 식별자, 그리고 웹에서의 위치에 대해서 간략히 소개합니다.

웹 리소스 식별

웹 리소스가 어떻게 참조되는지 그리고 어디에 위치하는지를 서술합니다.

데이터 URL

특정 종류의 URI는 직접 대표하는 리소스를 포함합니다. 데이터 URL은 매우 편리하지만 위험성을 가지고 있습니다.

리소스 URL 비표준

리소스 URL(resource 스키마가 접두사로 붙어있는 URL)은 Firefox와 Firefox 확장 프로그램들에서 내적으로 리소스를 로드하기 위해서 사용됩니다. 하지만 몇몇 브라우저로 연결할 수 있는 사이트의 정보로도 사용할 수 있습니다.

MIME 타입

HTTP/1.0부터는 다양한 타입의 콘텐츠를 전송할 수 있습니다. 이 글에서는 Content-Type 헤더와 MIME 표준을 사용하여 이를 수행하는 방법을 설명합니다.

www와 비-www URL 중에서 선택하기

이 글에서는 www 접두사 도메인을 사용할지 여부를 선택하는 방법과, 그 선택의 결과에 대한 지침을 제공합니다.

HTTP 세션의 흐름

이 글은 일반적인 HTTP 세션에 대해서 서술합니다. 예를 들어, 당신이 웹 페이지에서 링크 또는 이미지를 클릭하였을 때 무슨 일이 일어나는지를 들 수 있습니다.

HTTP 메시지

HTTP 메시지는 요청 혹은 응답을 하는 도중에 전송됩니며, 아주 명확한 구조를 가지고 있습니다. 이 간략한 글에서는 그 구조, 목적과 가능성에 대해서 서술합니다.

HTTP/2에서의 프레임과 메시지 구조

HTTP/2는 HTTP/1.x 메시지를 바이너리 프레임에 넣어 표시하고 캡슐화를 합니다. 이 글은 그 프레임의 구조, 목적, 그리고 인코드 방법에 대해서 설명합니다.

HTTP/1.x의 연결 관리

HTTP/1.1은 HTTP가 영구적 연결과 파이프라이닝을 지원한 첫 버전입니다. 이 글은 두 개념에 대해서 설명합니다.

HTTP/2에서의 연결 관리

HTTP/2는 어떻게 연결이 생성되고 관리되는지에 대해서 완벽하게 재검토했습니다. 이 글은 어떻게 HTTP 프레임이 멀티플렉싱이 가능한지 그리고 이전 HTTP 버전에서 발생한 'head-of-line' 블로킹 문제를 어떻게 풀었는지에 대해서 설명합니다.

콘텐츠 협상

HTTP는 브라우저가 선호하는 포맷, 언어 또는 인코딩을 알려주는 방법으로 Accept로 시작하는 HTTP 헤더 세트를 도입합니다. 이 항목은 어떻게 이러한 협상이 시작하는지, 어떻게 서버가 반응하기를 기대하는지 그리고 어떻게 가장 적절한 응답을 주는지에 대해서 설명합니다.