목록CS (10)
과거의 내가 미래의 나에게
엔티티 헤더 필드는 리퀘스트 메시지와 리스폰스 메시지에 포함된 엔티티에 사용되는 헤더로 콘텐츠의 갱신 시간 같은 엔티티에 관한 정보를 포함한다. 1. Allow 리소스가 지원하는 메소드의 집합을 나열한다. 만약 서버가 받을 수 없는 메소드를 수신한 경우, 상태 코드 405 Method Not Allowed로 리스폰스 하되 반드시 Allow 헤더필드를 붙여 수신 가능한 메소드 목록을 클라이언트에 전달하도록 해야한다. 2. Content-Encoding 서버가 엔티티 바디에 대해서 실시한 콘텐츠 코딩 형식을 전달한다. Transfer-Encoding은 서버에 의해 적용되는 콘텐츠 전송 방식이고 Content-Encoding은 전달하는 콘텐츠의 형식을 나타낸다. 3. Content-Language 엔티티 바디..
* HTTP/1.1을 기준으로 작성되었습니다. 응답 헤더 필드는 서버에서 클라이언트로 송신하는 리스폰스 메시지에 쓰이는 헤더로, 리스폰스의 부가 정보와 서버의 정보 그리고 클라이언트에 부가 정보 요구 등을 나타낸다. 1. Accept-Ranges 클라이언트가 Range 헤더 필드를 통해 서버에게 리소스의 일부만을 요청할 수 있었는데, 이 때 서버가 부분 요청에 대해 응할 수 있는지 여부를 확인할 때 Accept-Ranges 헤더 필드를 사용한다. 서버가 리소스의 일부만을 줄 수 있는지 여부를 알려주는 헤더 필드이다. 클라이언트는 해당 헤더를 보고 가능하다면 Range 헤더 필드로 리소스의 일부를 받아올 수 있다. 값으로는 bytes와 none이 있는데, bytes는 일부 요청이 가능하다는 것이고 none..
* HTTP/1.1을 기준으로 작성되었습니다. 리퀘스트 헤더 필드는 클라이언트에서 서버로 송신하는 리퀘스트 메시지에 쓰이는 헤더로, 리퀘스트의 부가 정보와 클라이언트 정보 그리고 리스폰스 콘텐츠에 관한 우선 순위 등을 추가한다. 1. Accept 클라이언트에서 서버에게 자신이 원하는 미디어 타입과 미디어 타입의 우선순위를 전달하기 위해 사용된다. 왼쪽은 주 타입이고, 오른쪽은 보조 타입이다. 텍스트 파일: text/html, text/plain, text/css, application/xml... 이미지 파일: image/png, image/gif... 동영상 파일: video/mpeg, video/quicktime... 애플리케이션 바이너리 파일: application/zip... ..
* HTTP/1.1을 기준으로 작성되었습니다. 일반 헤더 필드 1. Cache-Control HTTP 요청 시 매번 서버에게 보내지 않고 받았던 HTTP 응답을 재활용할 수가 있다. 즉 HTTP 요청/응답과 관련하여 캐싱을 할 수 있다는 것인데, 이와 관련된 헤더가 Cache-Control이다. Cache-Control은 캐싱과 관련된 여러 명령(Directive)을 할 수 있는 헤더 필드이다. Cache-Control의 값에다 명령을 나열하여 캐싱을 어떻게 할 지를 결정하는데, HTTP 요청과 응답 모두 사용할 수 있지만 각각 나열할 수 있는 명령들이 조금씩 다르다. Cache-Control과 관련된 더 자세한 내용은 지금 이론으로 공부해봤자 결국 도루묵이 될 것 같아서 일단은 해당 블로그를 통해 간단..

HTTP 프로토콜의 동작 원리에서 클라이언트가 HTTP 요청(리퀘스트) 메시지를 먼저 보내고, 서버가 그에 따른 결과(리스폰스)메시지를 보내준다고 했다. 이 때, 클라이언트와 서버는 서로 어떤 내용이 담긴 메시지를 보내주는 것일까? 오늘은 HTTP 메시지에 대해서 공부해보겠다. 0. 메시지 헤더 원문을 보기 위한 여정: 와이어샤크 HTTP 메시지를 살펴보기 앞서, 책이나 각종 글에 나와있는 HTTP 헤더 메시지 원문을 보고 싶었는데 개발자 도구로는 원문이 아니라 일부 요약된 듯한 내용만 있어서 이 원문을 찾느라 방황했다. 원래라면 이런 내용은 글의 주제에 벗어날 수 있으니 생략해야했지만 싸돌아다닌 시간이 억울해서 기록 겸 적어놓는다. 언급했 듯 개발자 도구에서는 대부분의 웹사이트에서는 헤더 메시지 원문을..
HTTP 동작 과정 클라이언트가 서버에 리소스를 요청하고 서버가 해당 요청을 처리한 후 클라이언트에 응답을 보내는 과정을 정리해본다. 1. 클라이언트의 요청 준비 사용자가 원하는 페이지를 받기 위해 웹 브라우저에 URL을 입력할 것이다. 웹 브라우저는 URL을 입력받으면 DNS 서버로부터 URL에 해당하는 IP 주소를 받아오는 등 사용자가 원한 웹 페이지를 특정하기 위한 정보를 준비한다. 2. TCP 연결 설정 정보를 다 모았다면 이제 해당 웹페이지가 들어있는 웹 서버를 찾아나서야 할 것이다. 전 세계에는 수많은 웹서버가 있으므로 이를 찾기 위해서는 먼저 전 세계의 웹 서버를 찾을 수 있는 인터넷에 접속해야할 것이다. 이를 TCP 연결 설정이라 하며, TCP 연결 설정을 통해 원하는 웹 서버를 찾은 후 ..
웹에 대해서 공부해야겠다 생각한 이래로 DNS에 대해서는 따로 살펴보았고, 이제 HTTP에 대해서 살펴보려 한다. DNS 처럼 인터넷에서 하나하나 찾아보기엔 양이 방대하여 책을 구매해서 해당 책을 기준으로 하여 학습할 것이다. 이번 글에서는 HTTP를 공부하기 전에 그와 연관된 지식에 대해서 배워보겠다. 이 블로그에서 적을 HTTP 학습글 시리즈는 "그림으로 배우는 HTTP&Network Basic" 이라는 책을 기반으로 했다. 해당 책은 아직 HTTP 2.0도 나오지 않은 시점에서 서술한 책이므로 다소 최신과 먼 정보가 있을 수 있으므로 참고하자. HTTP란 HyperText Transfer Protocol의 준말로 하이퍼텍스트는 문서(웹페이지)끼리 이동할 수 있도록 해주는 텍스트이며 프로..
한 프로그램을 만들고 그 서비스를 널리 알리기 위해서는 도메인 주소가 필요할 것이다. 도메인을 파는 업체에서 도메인을 구입함으로써 특정 DNS 서버에 해당 도메인을 입력시켰으면, 이제 그 도메인이 어떤 IP 주소와 매핑되는지 등 도메인에 대한 설정을 해야할 것이다. 이와 관련하여 이번 글에서는 도메인에 대한 설정 중 하나인 DNS Record에 대해 알아보겠다. DNS Record란 DNS 서버는 여러가지 일을 하지만 그 중에 하나는 도메인에 대한 정보를 저장하는 것이다. 어떤 하나의 도메인을 DNS 서버에 등록하고 그에 관한 정보를 기록해둘 것인데 이러한 도메인에 대한 정보들을 DNS Record라고 한다. 결국 DNS Record는 DNS 서버에 저장된 하나의 도메인에 대한 정보 조각들이라 할 수 있..