16. Паяжина

16. Паяжина

16. Паяжина

18 май 2015

Паяжина

Ще ви говорим за третото 'w' от 'www'

Как тъй краткия текст "facebook.com" ви навежда на мисли със син фон, пълни със снимките от нереално красивите и интересни ваканции на приятелите ви.

С какво "facebook.com" е различно от "чорба с праз"? И двете са текст от 13 символа

HTTP

Client-Server протокол, за раздаване на документи

Измислен е с цел споделяне на научни документи

Това значи предимно текст, леко форматиран и (недай си Боже!) някоя картинка

HTTP/1.1

От това нещо някак се раждат неща като twitter, facebook, amazon

HTTP/2.0

Горещо, горещо

Миналата седмица, буквално!

https://tools.ietf.org/html/rfc7540

Още е draft, но вече много хора го подържат

socketserver

Просто TCP сървър

http.server

Строи върху socketserver с HTTP протокола

http.client

Клиетска библиотека за HTTP

Най - често ще е по - добре да използвате urllib.request

HTTПротокола

Текстов

Без състяние

Клиента праща "заявка", сървъра отговаря с "отговор"

От какво се състоят

И двете се сътоят от headers и body

"Мета" данни и данни

Headers

Ключ: Стойност

Описани са в стандарта

Body

Каквато и да е купчина от байтове

Заявка пример


www.example.comtext/plain

Отговор


Mon, 23 May 2005 22:38:34 GMTApache/1.3.3.7 (Unix) (Red-Hat/Linux)Wed, 08 Jan 2003 23:11:55 GMT"3f80f-1b6-3e1cb03b"text/plain; charset=UTF-812bytescloseWolrd!

Имена

Спомняте ли си facebook.com? Какво е това .com в крайна сметка?

Компютрите не разбират от имена на човешки език, комуникират чрез Internet Protocol

Всеки (почти) компютър в паяжината има уникален (почти) IP address, който се използва за комуникация

DNS

Трябва да се случи превеждане от facebook.com до IP адрес, например 173.252.120.6

Domain Name System върши това

Това е глобална, централизирана и същевременно разпределена (what!?) и изключително добре обмислена система

Централизира и разпределена?

DNS in python

socket.gethostbyname и socket.gethostbyname_ex

flask

Въпроси?