1 00:00:00,000 --> 00:00:09,647 2 00:00:09,647 --> 00:00:11,730 SPEAKER: Nun ni dive en la dissendo kodo 3 00:00:11,730 --> 00:00:14,470 kaj rigardu la kuntekston en kiu la kodo vi skribas 4 00:00:14,470 --> 00:00:15,780 tuj esti operaciante. 5 00:00:15,780 --> 00:00:17,350 Fine de la tago, vi iras al implementar 6 00:00:17,350 --> 00:00:18,710 la tuteco de la TTT-servilo. 7 00:00:18,710 --> 00:00:20,460 Sed ni havigis vi kun la skeleto 8 00:00:20,460 --> 00:00:24,090 kodo kiu havas iuj funcionalidad, aparte rilataj al retoj. 9 00:00:24,090 --> 00:00:25,390 Ni rigardu. 10 00:00:25,390 --> 00:00:27,560 >> Do supren tie al la supro de la dosiero faskon 11 00:00:27,560 --> 00:00:30,020 de trajto testi makro asignoj. 12 00:00:30,020 --> 00:00:33,570 Nun ĉi tio estas nur karakterizaĵo de c, per laŭ faskon de viro paĝoj 13 00:00:33,570 --> 00:00:36,410 vi devas difini iujn de tiuj konstantoj esti vera 14 00:00:36,410 --> 00:00:39,920 aŭ esti eĉ specifaj nombroj por ke vi havas aliron al iuj funkcioj. 15 00:00:39,920 --> 00:00:42,470 Alie ili estos nedeklarita kaj vi ne havos aliron. 16 00:00:42,470 --> 00:00:45,340 Do mi faris tion per maniero legi la viro paĝoj. 17 00:00:45,340 --> 00:00:48,410 Nun malsupre en linioj 15 tra 17, ni 18 00:00:48,410 --> 00:00:50,550 havas tutan faskon da limoj deklaris. 19 00:00:50,550 --> 00:00:53,370 >> Kaj ni prunteprenis tiujn de populara retservilo nomata Apache. 20 00:00:53,370 --> 00:00:54,650 Kaj tiuj estas nur ciferoj kiuj iras 21 00:00:54,650 --> 00:00:56,810 kap la suma nombro de bajtoj kiuj permesis 22 00:00:56,810 --> 00:01:01,930 en diversaj kuntekstoj por la HTTP-peto ke navegador estas permesita por sendi min. 23 00:01:01,930 --> 00:01:04,310 Venonta, ni difini octetos. 24 00:01:04,310 --> 00:01:07,790 Nun octeto estas nur ornama metodo diri bajto, aŭ ok bitoj. 25 00:01:07,790 --> 00:01:10,720 Rezultas en la pasintaj tempoj bajto ne nepre ok bitoj, 26 00:01:10,720 --> 00:01:12,339 tiel octet estas ĉiam ok bitoj. 27 00:01:12,339 --> 00:01:14,880 Do en ĉi tiu kazo ni adoptis kio estas komuna en la reto 28 00:01:14,880 --> 00:01:17,410 mondo de vokanta ok bajtoj octeto. 29 00:01:17,410 --> 00:01:21,840 >> Jen mi specifis ke octetos volo esti 512, tiel ke multe kiel en jura 30 00:01:21,840 --> 00:01:24,170 kiam ni legas faskon da bajtoj samtempe, ankaŭ ĉi tie, 31 00:01:24,170 --> 00:01:27,390 ni iras legi faskon da octetos samtempe. 32 00:01:27,390 --> 00:01:28,922 Sekva tutan faskon da kaplinio dosierojn. 33 00:01:28,922 --> 00:01:30,255 Kiel mi scias inkludi tiujn? 34 00:01:30,255 --> 00:01:32,730 Nu mi simple legis la homo paĝoj por nombro de funkcioj 35 00:01:32,730 --> 00:01:35,620 ke ni uzos en tiu distribuo kodo kaj inkludi en tiujn 36 00:01:35,620 --> 00:01:37,390 Mi estis instruita al. 37 00:01:37,390 --> 00:01:39,090 >> Kaj nun ni havas datumtipo. 38 00:01:39,090 --> 00:01:41,470 Ni deklaris octet esti char. 39 00:01:41,470 --> 00:01:44,040 Kaj ni vidos poste ke tio estas uzataj tra la kodon. 40 00:01:44,040 --> 00:01:45,670 Kaj ni deklarita amaso de prototipoj, 41 00:01:45,670 --> 00:01:47,961 kaj ni iru rapide tra ĉiu de tiuj funkcioj. 42 00:01:47,961 --> 00:01:50,400 Laste kaj eble plej gravas en 43 00:01:50,400 --> 00:01:52,520 gravas ĉe tiu punkto en la rakonto, estas ke ekzistas 44 00:01:52,520 --> 00:01:54,520 estas, fakte tuta faskon de tutmonda variabloj 45 00:01:54,520 --> 00:02:00,430 ĉe la supro de la dosiero, radiko, CFD, SFD, peto, arkivo kaj korpo. 46 00:02:00,430 --> 00:02:03,960 >> Nun ĝenerale, uzante tiom da tutmonda variabloj, aŭ tutmondaj variabloj ĉe ĉiuj, 47 00:02:03,960 --> 00:02:05,280 ne estas la dorso praktiko. 48 00:02:05,280 --> 00:02:09,090 Sed rezultu ni ankaŭ uzas tekniko nomita signalo uzado poste 49 00:02:09,090 --> 00:02:11,930 en la kodo, kiu permesas nin detekti kiam la uzanto batas ion 50 00:02:11,930 --> 00:02:15,080 kiel CTRL C kaj fermis la servilo gracie. 51 00:02:15,080 --> 00:02:18,240 Kaj por fari tion gracie kaj efektive liberaj supren memoro, 52 00:02:18,240 --> 00:02:20,800 ni bezonas havi aliron al tiuj tutmondaj variabloj. 53 00:02:20,800 --> 00:02:24,510 >> Kaj nun ni rigardu ĉefa, kiu pelas la tuteco de tiu ĉi programo. 54 00:02:24,510 --> 00:02:27,720 Unue, ĉe la supro tie havi eraro nombro variablo 55 00:02:27,720 --> 00:02:29,570 kiu aperas ne havas tipon, sed tio estas 56 00:02:29,570 --> 00:02:31,500 ĉar ĝi estas efektive difinitaj en dosiero nomata 57 00:02:31,500 --> 00:02:34,800 eraro errno.h kiu estas inkluzivita pli supren. 58 00:02:34,800 --> 00:02:38,780 Se vi faras homo errno al reale vidi la difinon por tiu afero, 59 00:02:38,780 --> 00:02:41,230 vi vidos ke ĉi tiu estas speciala tutmonda variablo ke 60 00:02:41,230 --> 00:02:43,350 estas difinita per aro faskon de funkcioj priskribitaj 61 00:02:43,350 --> 00:02:48,730 de ni, sed de la aŭtoroj de Linukso kaj aliaj sistemoj por fakte starigis 62 00:02:48,730 --> 00:02:52,400 numeron ke variablo kiam io fuŝas tiel ke vi povas tutmonde 63 00:02:52,400 --> 00:02:54,830 elkompreni faris iri malbone. 64 00:02:54,830 --> 00:02:58,540 >> Nun malsupre vi vidos nova tekniko eble uzante getopt, 65 00:02:58,540 --> 00:03:01,790 funkcio kiu helpas analizi komando linio argumentoj por ke ni ne 66 00:03:01,790 --> 00:03:05,540 devas tedi perdi tempon kalkulante , kiel eblas analizi iu kiel 8080, 67 00:03:05,540 --> 00:03:08,350 aŭ haltostreko p, aŭ streketo h akiri helpon. 68 00:03:08,350 --> 00:03:10,300 getopt esence faras ke por ni. 69 00:03:10,300 --> 00:03:11,750 Vidu la man-paĝon por pliaj. 70 00:03:11,750 --> 00:03:13,960 >> Tuj, ni faru iom de eraro kontrolanta por certigi 71 00:03:13,960 --> 00:03:17,420 ke la haveno nombro estas ene la specifita gamo en la specifon. 72 00:03:17,420 --> 00:03:20,240 Venonta, ni vidas alvokon al la funkcio komenci, kies difino ni 73 00:03:20,240 --> 00:03:24,040 rigardi en momento, kaj kiel lia nomo sugestas, ĉi startas la retservilo. 74 00:03:24,040 --> 00:03:26,960 Ĉi tie ni havas alvokon al funkcio nomita signalo kiu tekstas: 75 00:03:26,960 --> 00:03:30,750 se kaj kiam vi aŭdos Kontrolo C de la uzanto de klavaro, bonvolu voki 76 00:03:30,750 --> 00:03:34,650 funkcio nomita traktilo ke okazas al finfine pura aĵojn kaj halti 77 00:03:34,650 --> 00:03:35,500 la servilo. 78 00:03:35,500 --> 00:03:39,470 >> Sub tiu estas kio ŝajnas esti senfina buklo, la unua linio de kiu 79 00:03:39,470 --> 00:03:41,660 efektive estas alvoko al funkcio nomita 80 00:03:41,660 --> 00:03:45,110 reset, kiun ni mem implementar poste sur la objektivo 81 00:03:45,110 --> 00:03:47,470 liberigi iun el niaj tutmondaj ŝtatoj. 82 00:03:47,470 --> 00:03:50,480 Post tiu estas linio de kodo kiu kondiĉe 83 00:03:50,480 --> 00:03:52,576 estas kontrolanta la reveno valoro de koneksaj. 84 00:03:52,576 --> 00:03:55,700 Nun konektita aspektas kiel predikato, iu kiu revenas vera aŭ malvera. 85 00:03:55,700 --> 00:03:58,040 Kaj ĝi faras, sed estas iun speciala en koneksa 86 00:03:58,040 --> 00:03:59,960 en tiu ĝi estas blokado alvokon. 87 00:03:59,960 --> 00:04:03,180 Ĝi sidos tie kaj atendu ĝis uzanto retumilo 88 00:04:03,180 --> 00:04:05,860 provas konekti al tiu retejo servilo kaj nur poste ĝi 89 00:04:05,860 --> 00:04:10,160 reveni vera aŭ malvera tiel ke ni procedi al la interno de ĉi se aserto. 90 00:04:10,160 --> 00:04:13,870 >> Fojo tie, rimarki tiun funkcion al funkcio nomita analizi, kion ni skribis, 91 00:04:13,870 --> 00:04:17,230 kiu parses ĉiuj octetos, ĉiuj de la bajtoj devenante navegador 92 00:04:17,230 --> 00:04:21,010 al la servilo, por ke ni povas transdoni vi reen finfine valoron al unu 93 00:04:21,010 --> 00:04:24,420 el tiuj tutmondaj variabloj kiuj tendencas ĉiuj bajtoj en apenaŭ 94 00:04:24,420 --> 00:04:26,630 la kaplinioj de tiu peto, ne la korpon 95 00:04:26,630 --> 00:04:28,920 se efektive estis korpon al ĝi. 96 00:04:28,920 --> 00:04:32,980 >> Nun malsupre ni komencas analizi tiuj titolaj ĉerpi 97 00:04:32,980 --> 00:04:35,490 subaro de la informo ke ni zorgas pri. 98 00:04:35,490 --> 00:04:37,740 Specife, po la especificación, ni unue 99 00:04:37,740 --> 00:04:40,580 volis peti linio, kiu estas ĝuste tiu unua linio, ke 100 00:04:40,580 --> 00:04:45,710 espereble diras iu kiel get slash aŭ iun padon kaj tiam HTTP 1.1. 101 00:04:45,710 --> 00:04:48,150 Ni uzas tiun metaforon de kudrilo en garbejo 102 00:04:48,150 --> 00:04:50,370 serĉi apartan signojn aŭ adresojn. 103 00:04:50,370 --> 00:04:53,120 Kaj efektive, ekzistas pluraj funkciojn en nia dissendo kodo 104 00:04:53,120 --> 00:04:56,930 ke vi, tro, trovu helpema serĉinte apartaj valoroj. 105 00:04:56,930 --> 00:05:00,630 >> Finfine, ni kopiu tiujn bajtojn en variablo nomas linio, 106 00:05:00,630 --> 00:05:03,510 kiu rimarkas, ankaŭ, ni asignitaj sur la stako 107 00:05:03,510 --> 00:05:05,890 pere de dinamike grandeco tabelo. 108 00:05:05,890 --> 00:05:08,350 Kaj ni intence provas eviti nomi malloc 109 00:05:08,350 --> 00:05:11,100 ĉar denove, ĉar de Kontrolo C estante 110 00:05:11,100 --> 00:05:14,630 potenciala trajto de tiu programo, ni ne volas havi ĉi kodo subite 111 00:05:14,630 --> 00:05:17,479 interrompita de la uzanto bateo Kontrolo C, la rezulto de kiu 112 00:05:17,479 --> 00:05:20,270 estas ke mi ne havu ŝancon senpage io mi malloced. 113 00:05:20,270 --> 00:05:23,660 Do mi klopodas uzi tiel de la stako estas mi povos tie. 114 00:05:23,660 --> 00:05:26,040 >> Sekva supren, tuta fasko da por dos. 115 00:05:26,040 --> 00:05:28,930 La especificación estos klarigis sur ekzakte kio atendis tie, 116 00:05:28,930 --> 00:05:31,800 sed la komentojn al vi aludo de kio kuŝas antaŭe. 117 00:05:31,800 --> 00:05:33,830 Vi unue devas validigi la peto linio 118 00:05:33,830 --> 00:05:37,760 kaj certiĝu ke ĝi aspektas kiel la especificaciones gramatiko, por tiel diri, 119 00:05:37,760 --> 00:05:38,541 diras ĝi devus. 120 00:05:38,541 --> 00:05:41,290 Vi do bezonas ĉerpi ion vokis la konsulto, la aĵoj eliras 121 00:05:41,290 --> 00:05:44,200 post demandosigno, kiel ni vidis per niaj Google ekzemplo 122 00:05:44,200 --> 00:05:46,320 en pasi en HD parametro. 123 00:05:46,320 --> 00:05:49,050 Ni tiam concatenate kune la radiko de la ttt-servilo 124 00:05:49,050 --> 00:05:52,520 kun la pado kiu estas en ke peto unuan linion 125 00:05:52,520 --> 00:05:56,010 kaj formi la kompletan padon de la dosiero ni volas serĉi. 126 00:05:56,010 --> 00:06:00,300 >> Poste, ni iras al certiĝu ke la dosiero ekzistas kaj estas legebla. 127 00:06:00,300 --> 00:06:05,100 Kaj tiam ni iras ĉerpi liajn dosiersufikso, la .html aŭ la .php, 128 00:06:05,100 --> 00:06:09,920 aŭ kelkaj tia etendo kiu estas ĉe la tre fino de la kordo petis. 129 00:06:09,920 --> 00:06:11,940 Sekva supren estas tuta faskon de kodo ni skribis 130 00:06:11,940 --> 00:06:15,800 al reale generi PHP generita enhavo por vi. 131 00:06:15,800 --> 00:06:18,010 En malmultaj vortoj, ĉi kodo portas en la nomon 132 00:06:18,010 --> 00:06:20,250 de la dosiero kiun vi volas PHP interpreti. 133 00:06:20,250 --> 00:06:24,630 Lin pasas por iu nomita pipon en PHP la interpretisto. 134 00:06:24,630 --> 00:06:28,060 Reiri la respondo kvazaŭ la respondo estis dosieron mem. 135 00:06:28,060 --> 00:06:32,110 Kaj tiam ni persisti super tiu dosiero bajtoj, trenante ilin ĉiujn en unu bufro 136 00:06:32,110 --> 00:06:34,180 tiel ke ni povos finfine presi ilin ekstere. 137 00:06:34,180 --> 00:06:37,230 >> Ja, ĉiu el tiuj flamo tien por dprintf 138 00:06:37,230 --> 00:06:40,110 permesas ni presi ion nomita dosiero descriptor, kiu 139 00:06:40,110 --> 00:06:42,350 Estas ĝuste entjero kiu reprezentas dosiero. 140 00:06:42,350 --> 00:06:45,360 Tre simila en spirito, sed fundamente malsama de dosiero 141 00:06:45,360 --> 00:06:46,620 stelo puntero. 142 00:06:46,620 --> 00:06:50,260 Rimarku kiel vi povas uzi sintakson kiel printf tie por ke mi povos dinamike 143 00:06:50,260 --> 00:06:54,000 enmeti iun kiel la longo por la valoro de HTTP kaplinio 144 00:06:54,000 --> 00:06:55,270 nomis Content-Length. 145 00:06:55,270 --> 00:06:57,990 Kaj finfine mi uzis la funkcio rajtas reale skribi 146 00:06:57,990 --> 00:07:00,040 la korpo al la peto. 147 00:07:00,040 --> 00:07:03,750 >> Bedaŭrinde, ni nur implementado apogo por dinamike 148 00:07:03,750 --> 00:07:05,350 generita PHP dosierojn. 149 00:07:05,350 --> 00:07:08,520 Ni ne implementar la apogo por statika dosierojn kiel gifs, kaj jpegs, 150 00:07:08,520 --> 00:07:10,660 kaj CSS kaj HTML dosierojn. 151 00:07:10,660 --> 00:07:14,450 Tio, bedaŭrinde, estas lasita al vi por respondi al la kliento fino 152 00:07:14,450 --> 00:07:15,090 ĉi fari. 153 00:07:15,090 --> 00:07:20,050 Do tie vi trovos ke ekzistas Ne multe inspiro ene de tiu bloko, 154 00:07:20,050 --> 00:07:23,520 sed se vi iom pli supren en kiom ni rondiris interpreti PHP kodo, 155 00:07:23,520 --> 00:07:25,520 la funkciojn vi uzas estas iom malsamaj. 156 00:07:25,520 --> 00:07:27,561 >> Fakte, vi povas pruntepreni iuj de la funcionalidades 157 00:07:27,561 --> 00:07:29,620 eble de la jura problemo aro, ĉar 158 00:07:29,620 --> 00:07:32,860 ĉe la fino de la tago ĉiuj vi devas fari ĉi tie estas unufoje vi scias kion dosiero malfermita 159 00:07:32,860 --> 00:07:35,690 kaj unufoje vi scias ke estas tn MIME tipo aŭ enhavon tipo, 160 00:07:35,690 --> 00:07:39,040 vi bezonas legi en tiuj bajtoj kaj iel kraĉis ilin reen eksteren. 161 00:07:39,040 --> 00:07:41,190 >> Kaj nun oni ĝiras de ĉi dosiero aliaj funkcioj. 162 00:07:41,190 --> 00:07:43,820 Supren unua estas koneksa, kiuj simple donas True 163 00:07:43,820 --> 00:07:47,350 kiam fine aŭdas ligo de uzanto. 164 00:07:47,350 --> 00:07:48,786 Sekva supren estas eraro. 165 00:07:48,786 --> 00:07:52,296 Eraro, dume, kiel funkcio ni skribis por manipuli ĉiujn el la malsamaj 400 166 00:07:52,296 --> 00:07:55,360 kaj 500 HTTP status kodoj kiuj vi eble volas 167 00:07:55,360 --> 00:07:58,500 por sendi reen al la uzanto, kune kun norma mesaĝo. 168 00:07:58,500 --> 00:08:01,950 >> Sekva supren estas ŝarĝo, aparte meaty funkcio, kies celo en la vivo 169 00:08:01,950 --> 00:08:06,920 estas legi de dosiero stelo puntero la enhavon de dosiero en tutmonda buffer 170 00:08:06,920 --> 00:08:09,000 ke ni deklaris tutmonde supre [? ĉefa. ?] 171 00:08:09,000 --> 00:08:12,649 Tiu estas iom kompleksa ĉar ni devas legi la bajtoj de la dosiero 172 00:08:12,649 --> 00:08:14,690 sed kontrolu sur ĉiu ripeto ĉu ni jam 173 00:08:14,690 --> 00:08:17,600 batis la fino de la dosiero aŭ io iris malbone. 174 00:08:17,600 --> 00:08:21,210 Kaj ni uzas realloc certigi ke ajn buffer ni uzante kreskas 175 00:08:21,210 --> 00:08:24,440 kaj kreskas kaj kreskas kaj ĉiam restante anticipe de la nombro de bajtoj 176 00:08:24,440 --> 00:08:25,675 ke ni bezonas havi en tie. 177 00:08:25,675 --> 00:08:27,550 Traktilo, dume, estas la funkcio kiu alvenas 178 00:08:27,550 --> 00:08:30,630 nomata per maniero, havante registrita Kontrolo C kiel signalon 179 00:08:30,630 --> 00:08:32,140 ke ni volas interkapti. 180 00:08:32,140 --> 00:08:34,070 Rimarku tie en traktilo ke fine 181 00:08:34,070 --> 00:08:36,780 alvokoj halti, kiu kompreneble haltigas la retservilo. 182 00:08:36,780 --> 00:08:39,750 Kaj bedaŭrinde, serĉo ne implementadas. 183 00:08:39,750 --> 00:08:41,940 En spirito, ĉi tiu estas sufiĉe simpla funkcio. 184 00:08:41,940 --> 00:08:44,900 Donita dosiersufikso, kiu bezonas reveni ĝi estas tn MIME 185 00:08:44,900 --> 00:08:46,320 tipo aŭ enhavon tipo. 186 00:08:46,320 --> 00:08:49,260 Kaj ni specifi en la especificación kion tio surĵeto devas esti. 187 00:08:49,260 --> 00:08:52,330 Sed vi devas traduki ĝi finfine al c kodo. 188 00:08:52,330 --> 00:08:56,490 >> Sekva supren estas nia simile meaty funkcio nomata analizi, kies celo en la vivo 189 00:08:56,490 --> 00:08:59,350 estas legi, ne de iu dosiero, sed de retaliron. 190 00:08:59,350 --> 00:09:03,510 Specife, legante kaj sintaksanalizi la HTTP peto kiu estas deveni retumilo 191 00:09:03,510 --> 00:09:05,940 al la servilo, por ke finfine ni povas analizi 192 00:09:05,940 --> 00:09:09,530 ĉe ĝuste la kaplinioj en peto linio kaj revenas tiuj al vi 193 00:09:09,530 --> 00:09:12,720 tra tutmonda buffer ke ni deklaras supre [? ĉefa. ?] 194 00:09:12,720 --> 00:09:14,880 >> Restarigi, dume, estas funkcio kiun ni difinas 195 00:09:14,880 --> 00:09:18,730 kiu metas nomita ripete interne de ĉefa ĉiufoje vi estas pri 196 00:09:18,730 --> 00:09:20,799 pretaj komenci aŭskultante por nova ligo 197 00:09:20,799 --> 00:09:22,840 tiel ke ni ĉiam scias la stato de nia variabloj 198 00:09:22,840 --> 00:09:24,870 kaj tial ni ankaŭ liberigita ajna memoro kiu 199 00:09:24,870 --> 00:09:28,070 povus esti asignitaj por antaŭa retaliron. 200 00:09:28,070 --> 00:09:30,060 Next Up estas komencas, funkcio kiun ni verkis 201 00:09:30,060 --> 00:09:31,920 kiu enhavas tutajn Multaj retoj kodo 202 00:09:31,920 --> 00:09:34,420 ke finfine komencas la retservilo. 203 00:09:34,420 --> 00:09:36,680 >> Lasta supren estas la funkcio nomata halto, kiu 204 00:09:36,680 --> 00:09:38,770 faras ĝuste tio, haltigas la retservilo. 205 00:09:38,770 --> 00:09:42,270 Sed unue ĝi liberigas supren ajnan memoron kiu ankoraŭ estis asignitaj. 206 00:09:42,270 --> 00:09:45,850 Sed fine flamo eliro eĉ sen reveni kontrolo 207 00:09:45,850 --> 00:09:47,480 al nia ĉefa funkcio. 208 00:09:47,480 --> 00:09:49,480 Finfine, unu el la plej gravaj teknikoj 209 00:09:49,480 --> 00:09:52,680 kiam implementando ĉi ttt-servilo estas tuj estos iom de provo kaj eraro, 210 00:09:52,680 --> 00:09:55,886 havante unu retumilo fenestro malfermita dekstre kaj terminalo fenestro je 211 00:09:55,886 --> 00:09:57,760 forlasis, la serviloj konzolo fenestro, por ke vi 212 00:09:57,760 --> 00:10:00,420 povas vidi la mesaĝojn kiuj estas esti montrata sur la ekrano. 213 00:10:00,420 --> 00:10:04,170 >> Sed eĉ pli bone estus tria fenestro, dua fina stacio fenestro, 214 00:10:04,170 --> 00:10:07,135 en kiu vi uzas Telnet, la uzado por kiu estas preskribita en la specifon. 215 00:10:07,135 --> 00:10:09,640 Kaj Telnet estas nur tre simpla reto programo 216 00:10:09,640 --> 00:10:12,660 kiu permesas ŝajnigi esti navegador en unu fenestro 217 00:10:12,660 --> 00:10:14,540 dum parolante al la alia fenestro. 218 00:10:14,540 --> 00:10:16,830 Tiel vi povas vidi ĝuste la laŭteksta komandoj 219 00:10:16,830 --> 00:10:18,700 alvenontaj reen de servilo al kliento 220 00:10:18,700 --> 00:10:20,810 sen devi ŝovas ĉirkaŭ chrome la desarrollador 221 00:10:20,810 --> 00:10:24,010 iloj en alie clunkier interfaco. 222 00:10:24,010 --> 00:10:29,099