Slide 1

Slide 1 text

for Dummies Come Funziona Internet

Slide 2

Slide 2 text

@gmazzap github.com/gmazzap https://gmazzap.me Giuseppe Mazzapica Sviluppatore PHP dal 2005, primo incontro con WordPress nel 2006. Moderatore presso wordpress.stackexchange.com Dal 2016 WordPress Engineer per:

Slide 3

Slide 3 text

1 https://emergencykittens.tumblr.com/ 2 3 Una storia in 3 passaggi:

Slide 4

Slide 4 text

2 I server sono computers. 1 Internet non è fatta di nuvole, ma di server. I computers parlano tra di loro. In molti e diversi modi. 3 4 Il linguaggio usato dai computer connessi ad internet è il TCP/IP.

Slide 5

Slide 5 text

Per poter comunicare i computer devono trovarsi. Voglio vedere un gattino all’indirizzo emergencykittens.tumblr.com Per trovare un server, un computer deve conoscere il suo indirizzo IP. Per ottenere l’indirizzo IP a partire da un nome di dominio viene usato il protocollo DNS.

Slide 6

Slide 6 text

Dove’è emergencykittens.tumblr.com? Non lo conosco, mi informo e ti faccio sapere... Recursive DNS Server

Slide 7

Slide 7 text

Recursive DNS Server emergencykittens.tumblr.com? .com? Chiedi a h.gtld-servers.net tumblr.com? Chiedi a ns1.yahoo.com Lo trovi al 66.6.2.21 Authoritative DNS Server Authoritative DNS Server Authoritative DNS Server emergencykittens.tumblr.com? emergencykittens.tumblr.com? I server DNS parlano tra loro usando un protocollo che si chiama UDP che io ho tradotto in italiano per voi

Slide 8

Slide 8 text

Carissimo 66.6.2.21, mi mandi quel gattino che mi piace tanto? HTTP? GET /awesome-cat.png Host: emergencykittens.tumblr.com Finalmente so a chi chiedere il mio gattino!

Slide 9

Slide 9 text

200 OK Content-Length: 120321 Content-Type: image/png Kg£™ä€´øîÙÆºo{›ùêxãøönÊ"w¤ ¢\9’wyŒ@ÉP úÔÀ|ðó¦–×1o:ÓËÉ#÷.‹@ô1ÀàÅtlD 2N`+0;HA®þOÇÝÊ@$#W&Y—À Oà@˜¦²‹É1¼^„«&óÀÌËÐKÅq˜CP—89€uÅ`„="oªĽ ºf¥ej; /üKº,H‘×öÒp-aF0dp> ´*³§I4·½ÇšâÚÆ_˜ ‹=%ư D4˜ÖòÊÝÚ2ÖüPZGïüð ¯4ªàX ÙXþ½B¯CÁ˜%¸ç<õÌo6àÄÜG°ÛW“r ëÙóï f { @NIÈØYæ « ˜‘ƒðeq{aô ~ >’8FûéID `69=U0Ö³ô}âT{‚›±Ø š]ï¹ ^#ÖhëÇ(l„˜ 9Å ¸¥X´ZÖ=mÂÿ1¡J~9\CÊ…˜Ñ¥ŸËWÐ ap›YúrV›ž¯§{pï"jdD¸‘ÑM‘£å ´DC5p ˜“èNÞbŠ f f ¢ … 1 X | „ O ’ : i S < ê g f Š Æ + } 1 Z æ “ ¾ ¾ 8 ó â c | ¤ ‘ ¢ ¾ ˜ a P = £ · D Ù œ ( n…˜Ã5Î`²/{yM½E4söIfRñ¾…{(Îÿƒõ–ÄéO‚™ æÚðÒû _š–1E fß>"0†>Ã>ÁŸÞ{;ØÞîú÷å§àùKóÞ å•êù|½}ð Á”ÿÌÏ?ð½øá?ûÖô/o¼&ÞBÿ¿Û³ë+qé»?ú;qJ ãzáç& įþú3˜X–ç¿|^nVت€½˜Ø“ ž¤ '´ÈSðK 9¥m‚8K †@P ?È+Öƒ«Çõ ÚÊå0Â|ŒÌE,—“«Ë cJ^â+¥FI˜œày#"ÕëÛ Ę̂{`6°jæ±cÐ }b<0/’ I® QèK+˜uÚs€¶EÁñ “ÂZÎMNŸ‚û™Äé1ø¦YÀ5V ¿!L0o4ôËõ:Ï) L* X´Õ o0µwÕðB òÑ —öR;¦ÄœòRsÛŽÊJùŒÁͦI=1Ã;©]mò¢ /Ÿ±JûK»¹)n?z’¯r lBnêÃÁlÔ úq˜ÃyY ¿ ›¸ ÄGqÃ,O×û- p¹>Õ>Sóåþ„AiÃOÜf0nù(nËd®\ႉìH0ÁÅ1\ }?„´Ÿ yæ×Y|Î×,Á ¶¥—Ó› Ìcviž\gxcLCb0ò>ãÅŽv?Jòœ“ .µ-Æ Y^¸cØ() é[‰n€ [X ¥Cð:êg#â= yœ´ÌsZäTˆ£ ’‘TÏÐýòŽ î04B @ D™¨ü$>šÅ±DtPD@Nñ,‡›/pÀq²Ø#<#: H"cšX“’ß³Há¸Äl0È—½’ýgØ£PœªH:Z°Q‹†¹Lü†YÍžÎÔȤ+3‡6¼7ÓôÍKêΤúVPVŒ“ÿe2’dVÁ-Ó uóõ…} ‹ , † * k@ÛË ë)…«Ëo- Hih¬¯ì¤v7€ \Ôç;ô[¾Æ³{»fYçð&^ù"4T9+E T¾®rYÈóÃNˆåÓÚtRÈê+˜ßŸEMË;¼È_.@G]‚FÎCºáO¿ ) | ÿ § ß D ñ ù ç ™ : z ¨ œ È ‘ ¿ õ ¼ E Œ i T Û × ? à o S k ò ö ( ó ¯ b Y e ‹ & ¿ ' ü ñ ® Î Â ò 8 Œ Ù 1 O Ó © á % = Ž ™ ö ‡ L r l Ø à£ÏžbHvw›Í³=¬óîv³¹ÙÀÁ¸0¼>ò>Ã8 ¸Ãã˜(n&]e /$™›ûºƒ]嚃‰ ¨Ï˜Ïò|±¾7{É)Áƒðr<•«æéÈ‚„(KsÜ3CMJ&aM- Ê¢ü~,÷Øõ¦#C=>\ÚºusŦè›Q />½>î^쀄Y™v 1ÁÊd¸Js¼`) Ä}YOFŽÀõj#)¦aH¶ Ò¸¥…¢á`eÒ,–8ЃÕÃ>hêªo ˜ˆ²H1@E,&»²,¸›¦1ìqAj)‚jˆôE±§Ñ€Q¦¥îš/I3LP %ƤWU>7LR ð#†½—Ša„EdqìxšÂá^i‡0äòqÌÍš2Dz5÷ 4 x6dà ØÀAK³„«5 |Ô£}nA~"fõ¨9Ǫƒ)T jŠXr ëFy¼¢8ÍçYûÉEܼx莢D8>õ± hj0Èõ®ØaŽè"QÁŠÙ'Ïóû3솓¯@±ÆñpÆæÏŠ ›¶£* · –±J JL¹Ò², ‰'¶Œãþn 5‰ ËÖ †ôæéÍþÉ>´È° Køxø÷ C¬±4)'ºg 3y«,I°aý,‰(æ8žqcÅ*[8éðäN¯ ðŸŠm Ï컯¾Å2ÍÊ’ì,ŠqŸ]Cg–6“®R–Â~ª4h>/ðáHæb0¶ºï:ÒÙ_å#= 2m:± ÎÁ¨;<–îs µ‡Y^4U¸ÉÊœ2cúL>î š– e T Ò ¶ 5 Þ Œ Ù O ` v ® º ¶ Á ‹ “ 2 • ½ § Æ ë F ! ý ˜ z æ € % ö ‰ é ú F T í â : ¤ l ‡ ¡ ° X å u u á > ¤ % e Æ N 4 M Æ ä ¾ ÿ ú 5 8 Ç ö v ‹ A ´¬6Û¾®ºS½Únß|÷öõ«‡çñ“Õv#b¦a]·ÍØe›æó|é_|ú¬kûÛgw°kÿðÿ)úîáÙ/_‚¾†wE»›U’2¨fAä¥ÃeA‚¬e6…+ffº †¼ÌÅDcÏËAæðhÀ5pzî>® ]é˜ J˜šÂ¡\¯â$PÕçKI€0 i–ÒÁØxŒzÌ–ÅØß ¹ÝÞ«†YÍžÎÔȤ+3‡6¼7¹Lü†YÍžÎÔȤ+3‡6¼ n…˜Ã5Î`²/{yM½E4söIfRñ¾…{(Îÿƒõ–ÄéO‚™ æÚðÒû _š–1E fß>"0†>Ã>ÁŸÞ{;ØÞîú÷å§àùKóÞ å•êù|½}ð¬e6…¬e

Slide 10

Slide 10 text

:-)

Slide 11

Slide 11 text

Il protocollo HTTP è molto semplice e permette la comunicazione tra un client (ad esempio il nostro PC) e un server (ad esempio il server che contiene l’immagine del gattino). Le informazioni possono essere testuali, ad esempio le pagine HTML o binarie, ad esempio l’immgine del gattino.

Slide 12

Slide 12 text

I dati scambiati viaggiano nella «rete» che è fatta di chilometri e chilometri di cavi ethernet, wifi, router, switch, cavi in fibra ottica sottomarini... I dati viaggiano in «pacchetti» codificati secondo le specifiche TCP che permettono la trasmissione affidabile anche di grandi quantità di dati. Eventuali pacchetti «persi» vengono re-inviati ed ogni pacchetto contiene le informazioni per poter essere interpretato in maniera corretta dal ricevente.

Slide 13

Slide 13 text

Il contenuto HTML di una pagina web richiede una richiesta HTTP che prima di ottenere un risultato deve seguire tutto il percorso che abbiamo visto per l’immagine del gattino. Ogni immagine, ogni file CSS, ogni file JavaScript, ognuna di queste cose richiede una richiesta HTTP con tutto quello che ne consegue.

Slide 14

Slide 14 text

2 Con HTTP/1, ancora nelle maggioranza dei server, ogni file è una richiesta separata: combinare i file reduce il tempo di caricamento. 1 Meno sono i dati da scaricare, più veloce sarà la visualizzazione della pagina. Meno «strada» fanno i pacchetti di dati, più veloce sarà lo scaricamento: usiamo server vicino ai nostri utenti oppure CDN. 3

Slide 15

Slide 15 text

A me basta che diate i miei gattini!

Slide 16

Slide 16 text

Inspirato a: http://jvns.ca Networking! ACK! di Julia Evans

Slide 17

Slide 17 text

Domande?