집이 거대한 컴퓨터라고 상상해보십시오. Goodison Street 또는 4th Avenue 대신 집 주소가 숫자로 구성됩니다. 예:112.231.31.20.
미래 영화에서처럼, 당신의 도시는 대부분 하늘에 있는 첨단 로봇으로 구성되어 집집마다 메시지를 전달하고 응답을 전달합니다.
사진이 있나요?
인터넷 작동 방식에 대한 개요
브라우저에 웹 주소를 입력하면 다음과 같이 약간 단순화됩니다.
- 요청을 보낼 "집"의 주소를 찾습니다.
- 로봇 우편 배달부를 사용하여 요청을 보냅니다.
- 로봇 우편 배달부의 응답을 참을성 있게 기다립니다.
이제 이 모든 것이 최종 사용자로서 추상화됩니다. 브라우저에 웹 주소를 입력하면 웹 페이지가 마술처럼 눈앞에 나타납니다.
충분히 발전된 기술과 마찬가지로 일반 사용자는 이러한 추상화 없이는 인터넷을 사용할 수 없습니다.
대부분의 경우 작동 방식에 대해 걱정할 필요가 없습니다. 작동 여부만 알면 됩니다.
그러나 특정 주제의 경우 너트와 볼트에 대해 조금 더 깊이 파고드는 것이 도움이 되거나 호기심의 가려운 부분을 긁습니다.
이 기사를 읽는다고 해서 인터넷의 기술적인 세부 사항에 대한 전문가가 되는 것은 아닙니다. 시간과 노력이 훨씬 많이 소요될 것입니다. 하지만 조감도와 더 나은 이해를 얻게 될 것입니다.
더 자세히 알고 싶다면 YouTube에 더 자세한 재생목록이 있습니다.
메시징 시스템
이 기사의 시작 부분에 있는 은유에서 우리는 인터넷이 전달되는 메시지로 구성되어 있음을 배웠습니다. 대부분의 경우 이러한 메시지는 HTTP 프로토콜로 알려진 것을 사용하여 전송됩니다.
규약. 무서운 말씀입니다. 그것은 눈에 유약을 바르고 브라우저 유형의 단어를 닫는 것입니다. 이제 더 쉬운 용어로 분해해 보겠습니다.
프로토콜은 합의를 위한 멋진 단어일 뿐입니다.
비유로 더 명확하게 합시다.
당신과 당신의 가장 친한 친구가 서로에게 비밀 메시지를 남겼습니다. "ballfoot"이라는 단어가 있는 종이를 문앞에서 발견하면 친구가 오늘 밤 20시에 축구를 위해 만나기를 원한다는 것을 알 수 있습니다.
당신은 집으로 배달된 종이에 "ballfoot"이라는 단어가 게임에 대한 초대를 의미한다는 데 동의했기 때문에 이것을 알고 있습니다.
이제 다른 친구에게 비밀 의미를 말하지 않고 "ballfoot"이라는 메모를 남기기 시작할 때 문제가 발생합니다. 그들은 정보로 무엇을 해야 할지 몰랐을 것입니다.
그들은 문앞에서 메모를 발견하고 잠시 머리를 긁적이다가 거실에서 Fortnite를 계속했습니다. 그리고 당신과 당신의 다른 한 친구는 당신 사이에 공을 전달할 것입니다. 이리저리. 이리저리. 지루함을 참을 수 없어 둘 다 집에 갈 때까지.
그러나 그렇게 할 필요는 없습니다. 친구에게 "ballfoot"의 의미를 말하면 어떨까요? 이제 모든 친구들은 세계 "ballfoot"이라는 메모가 20:00에 지역 법원에 나타나 축구를 한다는 것을 의미한다는 것을 알고 공유할 것입니다.
성공.
이것은 본질적으로 HTTP 프로토콜이 나타내는 것입니다. 특정 방식으로 메시지를 보내면 서버가 이를 이해하고 그에 대한 응답을 제공하는 데 동의했습니다.
메시지 구조
HTTP 계약을 자세히 살펴보겠습니다. 요청과 응답으로 구성되어 있습니다. 간단히 말해서, 당신은 무언가를 요청한 다음 서버로 알려진 무언가로부터 응답을 받습니다.
계속하기 전에 HTTP 요청/응답 주기를 더 잘 이해하기 위해 비유를 처음부터 수정하겠습니다.
로봇이 집에서 집으로 메시지를 전달하는 것을 기억하십니까? 이제 그 모든 로봇이 누군가의 것이라고 상상해 보세요.
자신의 개인 로봇이 있으며 메시지가 있는 모든 주소(IP 주소)로 이동하도록 요청할 수 있습니다. 로봇이 메시지를 가지고 주어진 주소에 도착하면 로봇이 들어가서 전달할 메시지가 있다고 과감하게 선언합니다. 그러면 메시지가 나옵니다.
비유를 위해 집(서버)의 문이 반지의 제왕에서 모리아 광산 입구와 같다고 상상해 보십시오. 단어를 올바르게 말할 경우에만 문이 열리고 당신이 들어갈 수 있습니다.
이 경우 로봇이 특정 방식으로 메시지를 말하는 경우에만 응답 메시지를 받게 됩니다.
이것은 작동하는 HTTP 프로토콜입니다. 요청 및 응답 메시지의 모양을 안내하는 미리 정의된 규칙 집합이 있습니다.
이 시점에서 이러한 메시지가 어디에서 오는지 궁금할 수 있습니다. 웹 브라우저에 웹 사이트 주소를 입력할 때 직접 작성하지는 않습니다.
글쎄, 그것은 모두 브라우저에 의해 자동으로 처리됩니다. 주소를 입력하면 브라우저가 HTTP 요청 메시지를 작성하여 서버로 보냅니다. HTTP 요청 메시지는 다음과 같습니다.
GET / HTTP/1.1
Host: google.com
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko)
Version/11.0 Mobile/15A372 Safari/604.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,
image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
...etc
무섭게 생겼죠?
브라우저가 우리를 위해 이것을 해준다는 것은 좋은 일입니다.
첫 번째 줄만 자세히 살펴보겠습니다. GET / HTTP/1.1
. 이 라인은 당신의 로봇이 구글의 집으로 가서 "당신의 사이트 루트에 있는 것을 받아도 될까요?"라고 말하게 합니다. (즉, www.google.com/home이 아니라 www.google.com에 있는 내용을 검색하려는 것입니다.)
이제 올바른 방식으로 Google의 집(서버)에 메시지를 전달했습니다. 문에 불이 들어오며 열립니다.
안에 다른 로봇이 보입니다. 그 뒤에는 GET / HTTP/1.1
과 같은 텍스트로 표시된 일련의 잠금 상자가 있습니다. 및 GET /search HTTP/1.1
. 귀하의 요청이 이러한 잠금 상자 중 하나와 일치하면 로봇이 잠금을 해제하고 로봇에 내용을 제공하여 응답과 함께 신속하게 사용자에게 반환하라는 메시지를 표시합니다.
응답
다음과 같은 응답을 받게 됩니다.
HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache/2.2.14 (Win32)
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
Content-Length: 88
Content-Type: text/html
Connection: Closed
이제 브라우저의 개발자 도구에서 실제로 검사하지 않는 한 이 응답을 볼 수 없습니다. 그러나 그럼에도 불구하고 당신은 그것을 받습니다.
다음에 일어나는 일은 어떤 종류의 응답을 받았는지, 그리고 서버의 Lockbox 안에 무엇이 있었는지에 따라 달라집니다.
대부분의 경우 그 대가로 받는 것은 HTML 문서입니다. HTML은 웹 페이지의 구조를 나타내며 브라우저가 표시해야 하는 내용을 정의합니다.
www.google.com으로 이동하면 google.com 사이트가 브라우저에 표시되는 방식을 정의하는 HTML 파일을 받게 됩니다.
시간이 있다면 이 11분짜리 동영상에서 HTTP 요청 및 응답에 대해 자세히 알아보세요.
결론
이 기사에서는 인터넷이 작동하는 방식과 HTTP를 사용하여 인터넷에서 통신하는 방법을 검토했습니다.
우리는 HTTP 프로토콜이 인터넷에서 브라우저와 서버 사이에서 통신하는 데 사용되며 요청을 보내고 받는 방법에 대해 일반적으로 합의된 표준으로 구성된다는 것을 배웠습니다.
우리는 또한 그러한 의사소통 표준을 갖는 것의 중요성과 일반적으로 합의된 표준을 갖는 것의 이점을 탐구했습니다.
인터넷이 어떻게 작동하고 어떤 종류의 응답을 받을 수 있는지 이해하는 데에는 더 많은 측면이 있습니다.
시간이 있다면 웹 서버를 구축하는 방법을 가르치는 이 18분 비디오에서 이 기사에서 다루는 많은 주제를 검토하고 몇 가지 새로운 주제를 살펴보겠습니다.
이제 인터넷에서 통신이 작동하는 방식에 대한 일반적인 이해가 있어야 합니다.
다른 사람이 이 기사의 혜택을 받을 수 있다고 생각되면 널리 알려주세요. 그리고 내가 언제 더 많은 콘텐츠를 게시하는지 알고 싶다면 내 YouTube 채널을 구독하거나 Twitter에서 @foseberg를 팔로우할 수 있습니다.