Engineering/Network
-
[HTTP 완벽 가이드] 5장. 웹 서버Engineering/Network 2021. 9. 26. 11:57
05. 웹 서버 웹 서버가 하는 일 단계 1: 클라이언트 커넥션 수락 클라이언트가 이미 서버에 대해 열려있는 지속적 커넥션을 갖고 있다면, 클라이언트는 요청을 보내기 위해 그 커넥션을 사용할 수 있다. 그렇지 않다면, 클라이언트는 서버에 대한 새 커넥션을 열 필요가 있다. 새 커넥션 다루기 클라이언트가 웹 서버에 TCP 커넥션을 요청하면, 웹 서버는 그 커넥션을 맺고 TCP 커넥션에서 IP 주소를 추출하여 커넥션 맞은편에 어떤 클라이언트가 있는지 확인한다. 새 커넥션이 맺어지고 받아들여지면, 서버는 새 커넥션을 커넥션 목록에 추가하고 커넥션에서 오가는 데이터를 지켜보기 위한 준비를 한다. 웹 서버는 어떤 커넥션이든 마음대로 거절하거나 즉시 닫을 수 있다. 클라이언트 호스트 명 식별 웹 서버는 클라이언트 ..
-
[HTTP 완벽 가이드] 4장. 커넥션 관리Engineering/Network 2021. 9. 18. 02:45
TCP 커넥션 TCP 커넥션은 클라이언트와 서버간에 주고받는 메시지들의 손실 혹은 손상되거나 순서가 바뀌지 않고 안전하게 전달할 수 있도록 한다. TCP 커넥션의 한쪽에 있는 바이트들은 반대쪽으로 순서에 맞게 정확히 전달된다. HTTP, HTTPS 네트워크 프로토콜 스택 TCP 스트림은 세그먼트로 나뉘어 IP 패킷을 통해 전송된다. TCP 는 IP 패킷(혹은 IP 데이터그램)이라고 불리는 작은 조각을 통해 데이터를 전송한다. HTTP 는 TCP 커넥션을 통해서 메시지 데이터의 내용을 순서대로 보낸다. TCP 는 세그먼트라는 단위로 데이터 스트림을 잘게 나누고, 세그먼트를 IP 패킷이라는 단위로 인터넷을 통해 전달한다. TCP 세그먼트의 구조와 전달 과정은 아래의 링크에 정리되어 있다. https://ic..
-
[HTTP 완벽 가이드] 3장. HTTP 메시지Engineering/Network 2021. 9. 12. 02:58
메시지의 흐름 HTTP 메시지는 HTTP 애플리케이션 간에 주고받은 데이터의 블록들이다. 이 데이터의 블록들은 메시지의 내용과 의미를 설명하는 텍스트 메타 정보로 시작하고 그 다음에 선택적으로 데이터가 올 수 있다. 인바운드, 아웃바운드 메시지가 클라이언트에서 서버로 향하는 것을 인바운드라고 한다. 클라이언트의 요청을 처리하고 메시지가 서버에서 클라이언트로 다시 향하는 것을 아웃바운드라고 한다. 다운스트림으로 흐르는 메시지 다운스트림(downstream)은 하류라는 뜻을 가졌다. 데이터의 흐름을 물이 흐르는 원리와 비슷하게 설명한 것이다. 물은 항상 상류에서 하류로 흐르듯이, 데이터도 항상 업스트림에서 다운스트림으로 흐른다. 메시지의 각 부분 메시지는 세 부분으로 이루어져 있다. (시작줄, 헤더 블록, ..
-
[HTTP 완벽 가이드] 2장. URL과 리소스Engineering/Network 2021. 9. 4. 04:27
URL 문법 ://:@:/;?# 스킴: 사용할 프로토콜 스킴은 주어진 리소스에 어떻게 접근하는지 알려주는 중요한 정보다. URL을 해석하는 애플리케이션이 어떤 프로토콜을 사용하여 리소스를 요청해야 하는지 알려준다. 호스트와 포트 리소스를 호스팅하고 있는 장비와 그 장비 내에서 리소스에 접근할 수 있는 서버가 어디에 있는지에 대한 정보를 제공한다. 호스트는 접근하려고 하는 리소스를 가지고 있는 인터넷상의 호스트 장비를 가르키고, 포트는 서버가 열어놓은 네트워크 포트를 가르키낟. TCP를 사용하는 HTTP는 기본 포트로 80을 사용한다. 사용자 이름과 비밀번호 서버가 자신이 가지고 있는 데이터에 접근을 허용하기 전에 요구하는 사용자 이름과 비밀번호이다. ftp://ftp.prep.ai.mit.edu/pub/..