목록전체 글 (31)
가능세계
HTTP 프로토콜은 기본적으로 무상태(Stateless) 속성을 가지고 있습니다. 서버가 클라이언트의 요청을 기억하지 못하기 때문에 클라이언트는 매 요청 시 필요한 데이터를 추가로 전송해야 하며, 이로 인해 이전과 후속 요청이 같은 사용자의 것인지를 판단하기 어려워집니다. 예를 들어, 서버는 로그인 상태 또한 기억하지 못하며 모든 요청에 사용자 정보를 포함해야 합니다. 여기서 쿠키라는 개념이 등장합니다. 1. HTTP 쿠키란 무엇인가요? HTTP 쿠키(HTTP Cookies)는 서버와 클라이언트 간 전달되는 작은 데이터 조각입니다. 서버가 브라우저에게 웹 페이지를 전송할 때 쿠키를 포함할 수 있습니다. 브라우저는 해당 쿠키를 저장해두었다가 동일한 서버에 재요청 시 그 쿠키를 도로 전송합니다. 이로써 무상..
HTTP는 액세스 제어와 인증을 위한 프레임워크를 제공합니다. 1. WWW-Authenticate 서버가 사용자에게 인증을 요구할 때, 클라이언트에게 401 (Unauthorized) 응답과 함께 WWW-Authenticate 헤더를 포함해서 메시지를 전송합니다. WWW-Authenticate: Newauth realm="apps", type=1, title="Login to \"apps\"", Basic realm="simple" WWW-Authenticate 응답 헤더는 특정 리소스 접근 시 필요한 인증 방법을 정의합니다. 참고로, 인증에 들어가는 헤더 값이 다르므로 각 인증 방법마다 확인이 필요합니다. 2. Authorization 서버와 인증을 하기를 원하는 클라이언트는 Authorization ..
해외에서 서비스되는 웹 사이트에 방문한 경험이 있을 것입니다. 이때 해당 웹 사이트를 한국에서 접속하면 콘텐츠를 한국어로 보여주기도 합니다. 직접 웹 사이트의 언어 지원을 설정하지 않았는데도, 어떻게 해당되는 언어로 볼 수 있을까요? 바로 클라이언트와 서버 간의 HTTP 콘텐츠 협상을 통해 이루어진 것입니다. 1. 콘텐츠 협상이란 무엇인가요? HTTP에서 콘텐츠 협상이란, 동일한 URI에서 리소스의 서로 다른 버전을 제공하기 위해 사용하는 메커니즘입니다. 다시 말해, 웹 브라우저와 웹 서버 간 정보를 주고받을 때, 사용자에게 알맞는 형태의 리소스를 보여줄 수 있도록 "어떤 형태로 리소스를 주고받을지 정하는" 메커니즘을 일컫습니다. 콘텐츠 협상 헤더는 요청 시 사용되며, 보통은 서버 주도적 협상으로 이루어..
1. 전송 방식 HTTP 메시지 전송 방식은 크게 4개로 분류합니다. 1-1. 단순 전송 HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 3423 ... 콘텐츠를 한 번에 요청하고 한 번에 받는 단순한 전송 방식입니다. 보내는 콘텐츠 길이를 서버에서 알고 있을 때 길이를 지정하여 HTTP 응답의 일부로 전송합니다. e.g. Content-Length: 3243 1-2. 압축 전송 HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Encoding: gzip Content-Length: 521 lkj123kljoiasudlkjaweioluywlnfdo912u34ljko98..
HTTP 헤더는 클라이언트와 서버가 HTTP 요청-응답 프로세스 중에 정보를 교환하는 수단입니다. 전송에 필요한 모든 부가적인 정보를 전달할 수 있도록 해줍니다. 이번 포스팅에서는 요청 헤더와 응답 헤더에 대해 알아봅시다. 1. 요청 헤더(Request Header) 요청 헤더는 서버가 적절한 응답을 제공할 수 있도록 요청에 대한 정보가 포함된 HTTP 헤더입니다. 가져올 리소스에 대한 정보이거나, 리소스를 요청하는 클라이언트에 대한 정보일 수 있습니다. 1-1. 요청 헤더의 종류 다음은 요청 헤더의 몇 가지 예시입니다. Host: 요청한 호스트 정보(도메인) From: 유저 에이전트의 이메일 정보 Referer: 이전 웹 페이지 주소 User-Agent: 유저 에이전트 애플리케이션 정보 1-2. Hos..