1 00:00:05,950 --> 00:00:09,005 RUNĀTĀJS: Parunāsim par citu protokolu — hiperteksta pārsūtīšanas 2 00:00:09,005 --> 00:00:12,060 protokolu jeb HTTP. 3 00:00:12,060 --> 00:00:15,074 Mēs jau esam runājuši par IP un TCP iepriekšējos videoklipos. 4 00:00:15,074 --> 00:00:18,235 Un tie ir protokoli, kas nosaka, kā informācija tiek pārvietota no 5 00:00:18,235 --> 00:00:21,397 mašīnas uz mašīnu un no programmas uz programmu, vai pakalpojumu uz 6 00:00:21,397 --> 00:00:24,558 pakalpojumu, izmantojot internetu, izmantojot šo maršrutētāju un 7 00:00:24,558 --> 00:00:27,720 iekārtu tīklu. 8 00:00:27,720 --> 00:00:30,640 Bet tā parasti nav pilna bilde, vai ne? 9 00:00:30,640 --> 00:00:35,035 Parasti, kad mēs nosūtām informāciju, pati programma — kad dati tiek 10 00:00:35,035 --> 00:00:39,430 saņemti, piemēram, e-pastā, izmantojot TCP portu 25 vai tīmekļa lapas 11 00:00:39,430 --> 00:00:43,825 pieprasījumu, izmantojot portu 80, tur parasti ir noteikumu sistēma, 12 00:00:43,825 --> 00:00:48,220 lai apstrādātu to, ko esmu tikko saņēmis. 13 00:00:48,220 --> 00:00:51,960 Un HTTP ir tieši šāda protokola piemērs. 14 00:00:51,960 --> 00:00:54,090 HTTP ir vienīgais lietojumprogrammas slāņa protokols, par kuru mēs 15 00:00:54,090 --> 00:00:56,220 runāsim. 16 00:00:56,220 --> 00:00:59,505 Taču tas ir vēl viena noteikumu kopa, kas nosaka, kā informācija ir 17 00:00:59,505 --> 00:01:02,790 jāpārraida un jāapstrādā, izmantojot internetu. 18 00:01:02,790 --> 00:01:07,806 Konkrēti, HTTP precīzi norāda, kā ir jāiesniedz pieprasījums tīmekļa 19 00:01:07,806 --> 00:01:12,823 lapai un kā serveris, mašīna, kas mitina tīmekļa lapas, piegādā šo 20 00:01:12,823 --> 00:01:17,840 informāciju atpakaļ klientiem. 21 00:01:17,840 --> 00:01:21,965 Tātad šim protokolam faktiski nav nekāda sakara ar to, kā informācija 22 00:01:21,965 --> 00:01:26,090 pārvietojas no punkta A uz punktu B. 23 00:01:22,270 --> 00:01:25,983 Tā patiešām ir noteikumu sistēma — tie būtībā ir noteikumi par 24 00:01:25,983 --> 00:01:29,696 iesaistīšanos darbā ar tīmekļa lapu, līdzīgi kā tad, kad kāds pamāj 25 00:01:29,696 --> 00:01:33,410 jums sveicinot, jums ir jāatbild. 26 00:01:33,410 --> 00:01:36,280 Tas ir sava veida parasts cilvēku mijiedarbības protokols. 27 00:01:36,280 --> 00:01:39,163 HTTP protokols vienkārši saka: ja vēlaties pieprasīt tīmekļa lapu, 28 00:01:39,163 --> 00:01:42,046 pārliecinieties, vai jūsu formāts izskatās šādi — līdzīgi, kā ir ar 29 00:01:42,046 --> 00:01:44,930 biznesa vēstules noformēšanu. 30 00:01:44,930 --> 00:01:50,029 Un atbilde līdzīgi tiks sniegta saskaņā ar šo protokolu. 31 00:01:50,029 --> 00:01:51,704 Ir arī citi lietojumprogrammu slāņa protokoli, par kuriem mēs 32 00:01:51,704 --> 00:01:53,380 nerunāsim videoklipos. 33 00:01:53,380 --> 00:01:56,343 Bet tie ietver tādas lietas kā: datņu pārsūtīšanas protokols, 34 00:01:56,343 --> 00:01:59,306 vienkāršais pasta pārsūtīšanas protokols e-pasta sūtīšanai, datu 35 00:01:59,306 --> 00:02:02,269 izplatīšanas pakalpojums, attālās darbvirsmas protokols, RDP, kas 36 00:02:02,269 --> 00:02:05,233 tiek izmantots, ja vēlaties attālināti piekļūt savam datoram no cita 37 00:02:05,233 --> 00:02:08,196 datora, XMPP, kas ir bieži zināms kā Jabber vai tērzēšana, tāpēc šis 38 00:02:08,196 --> 00:02:11,160 ir tērzēšanas pakalpojumu izmantošanas protokols. 39 00:02:11,160 --> 00:02:13,310 Un tur ir daudz, daudz, daudz kā cita. 40 00:02:13,310 --> 00:02:16,780 Tāpēc katru reizi, kad izmantojat pakalpojumu, pakalpojums sagaida, 41 00:02:16,780 --> 00:02:20,250 ka informācija tiks saņemta — pieprasījums tiks saņemts — ļoti 42 00:02:20,250 --> 00:02:23,720 noteiktā formātā, un tam arī ir jāatgriež informācija ļoti noteiktā 43 00:02:23,720 --> 00:02:27,190 formātā. 44 00:02:27,190 --> 00:02:29,470 Tāpēc atgriezīsimies pie ilustrācijas, kurā mēs vēlamies runāt ar 45 00:02:29,470 --> 00:02:31,750 internetu. 46 00:02:31,750 --> 00:02:34,810 Tātad mēs esam laimīgi un vēlamies apmeklēt cats.com, vai ne? 47 00:02:34,810 --> 00:02:37,265 Tātad, ja mēs tikai runājam ar cats.com, mēs varētu teikt kaut ko 48 00:02:37,265 --> 00:02:39,720 līdzīgu: “Hej, vai varu apskatīt jūsu sākumlapu?” 49 00:02:39,720 --> 00:02:42,320 Un cats.com droši vien atbildēs: jā, protams. 50 00:02:42,320 --> 00:02:43,440 Lūdzu! 51 00:02:43,440 --> 00:02:46,440 Tātad tā ir cilvēku jautājums-atbilde komunikācija. 52 00:02:46,440 --> 00:02:47,980 Kā tas izskatās HTTP? 53 00:02:47,980 --> 00:02:51,340 Nu, patiesībā tas diezgan skaidri parāda kaut ko līdzīgu šim. 54 00:02:51,340 --> 00:02:57,290 Mēs varētu teikt GET/HTTP/1.1 no vietnes cats.com. 55 00:02:57,290 --> 00:03:00,164 Tātad būtībā tas, ko es šeit daru, ir tīmekļa lapas www.cats.com/ 56 00:03:00,164 --> 00:03:03,039 prasīšana. 57 00:03:03,039 --> 00:03:05,119 Mūsdienās slīpsvītru parasti izlaižam, taču tas nozīmētu tikai 58 00:03:05,119 --> 00:03:07,200 cats.com mājaslapu. 59 00:03:07,200 --> 00:03:10,691 Ak, un, starp citu, es izmantošu HTTP versiju 1.1, lai sazinātos ar 60 00:03:10,691 --> 00:03:14,182 jums. 61 00:03:14,182 --> 00:03:16,776 Tas ir līdzīgi kā teikt: starp citu, es runāšu franču valodā, vai: 62 00:03:16,776 --> 00:03:19,370 starp citu, es runāšu angliski. 63 00:03:19,370 --> 00:03:22,160 Tas ir tikai protokola formāts. 64 00:03:22,160 --> 00:03:25,050 Tas ir arī 1.0, kas vairs netiek plaši izmantots. 65 00:03:25,050 --> 00:03:30,615 Tāpēc es runāju par HTTP 1.1, un es vēlētos www.cats.com/. 66 00:03:30,615 --> 00:03:31,710 Lūdzu, dabūjiet to man. 67 00:03:31,710 --> 00:03:35,555 Un tad ir arī cita informācija — daudzpunkte, kas ir informācija par 68 00:03:35,555 --> 00:03:39,400 to, kas jūs esat, lai cats.com zinātu, kur to nosūtīt. 69 00:03:39,400 --> 00:03:43,085 Bet šīs ir divas kritiskās daļas HTTP pieprasījuma pašā sākumā — 70 00:03:43,085 --> 00:03:46,770 tāpat kā tad, kad sākat rakstīt vēstuli, jūs sakāt: dārgais, vārds. 71 00:03:46,770 --> 00:03:49,710 Tas pēc būtības ir ļoti līdzīgi tam. 72 00:03:49,710 --> 00:03:52,370 Un, ja vietne cats.com sacīs: ak, protams, še tev. 73 00:03:52,370 --> 00:03:55,590 Viņi varētu atbildēt šādi — es arī atbildu. 74 00:03:55,590 --> 00:03:57,960 Es arī runāju HTTP 1.1. 75 00:03:57,960 --> 00:04:01,720 Jūsu pieprasījums ir apstiprināts, 200 OK. 76 00:04:01,720 --> 00:04:03,985 Tas, ko jūs tūlīt saņemsiet, ir HTML un pēc tam: daudzpunkte, papildu 77 00:04:03,985 --> 00:04:06,250 informācija. 78 00:04:06,250 --> 00:04:11,294 Pieprasījuma pašā apakšā patiesībā ir HTML, iezīmēšanas valoda, 79 00:04:11,294 --> 00:04:16,339 cats.com mājaslapas saturs. 80 00:04:16,339 --> 00:04:18,783 Tātad HTTP/1.1 — es atzīstu, ka jūsu pieprasījums tika pieņemts, 81 00:04:18,783 --> 00:04:21,227 izmantojot HTTP 1.1. 82 00:04:21,227 --> 00:04:22,310 Jūsu pieprasījums tika apstiprināts. 83 00:04:22,310 --> 00:04:25,810 Es varu dot jums to, ko vēlaties, 200 OK. 84 00:04:25,810 --> 00:04:27,440 Jūs tūlīt saņemsiet HTML. 85 00:04:27,440 --> 00:04:30,450 Un tad šeit ir jūsu pieprasītais HTML. 86 00:04:30,450 --> 00:04:33,930 Bet dažreiz mūsu pieprasījumi ne vienmēr notiek saskaņā ar plānu. 87 00:04:33,930 --> 00:04:37,100 Vai es varu redzēt jūsu cats.html lapu? 88 00:04:37,100 --> 00:04:39,920 Nu, ja viņi saka, ka mums nav cats.html lapas, kas šķiet nereāli, jo 89 00:04:39,920 --> 00:04:42,740 viņi ir cats.com. 90 00:04:42,740 --> 00:04:44,400 Varētu domāt, ka viņiem ir cats.html. 91 00:04:44,400 --> 00:04:45,420 Bet labi. 92 00:04:45,420 --> 00:04:47,535 Tātad šī ir sava veida parasta cilvēku mijiedarbība, kāda mums tagad 93 00:04:47,535 --> 00:04:49,650 ir bijusi ar cats.com. 94 00:04:49,650 --> 00:04:51,060 Kā tā tiek tulkota? 95 00:04:51,060 --> 00:04:52,726 Tas jums varētu būt pazīstami. 96 00:04:52,726 --> 00:04:55,418 Mūsu pieprasījums izskatījās tieši tāds pats, tikai tā vietā, lai 97 00:04:55,418 --> 00:04:58,110 iegūtu slīpsvītru, mēs tagad saņemam cats.html. 98 00:04:58,110 --> 00:05:01,865 Tātad tagad būtībā viss šis pieprasījums ir: lūdzu, sniedziet man 99 00:05:01,865 --> 00:05:05,620 www.cats.com/cats.html. 100 00:05:05,620 --> 00:05:10,126 Tātad saimniekdators un šīs augšējās līnijas vidējā daļa precīzi 101 00:05:10,126 --> 00:05:14,632 norāda, kuru lapu es meklēju. 102 00:05:14,632 --> 00:05:17,590 Taču cats.com šajā gadījumā nespēs atbildēt pozitīvi. 103 00:05:17,590 --> 00:05:19,089 Viņi nezina, par ko mēs runājam. 104 00:05:19,089 --> 00:05:22,129 Tātad tas ir kaut kas, ko jūs, iespējams, redzējāt iepriekš — 105 00:05:22,129 --> 00:05:25,170 HTTP 1.1 404 Not Found. 106 00:05:25,170 --> 00:05:27,180 Es nevarēju atrast to, ko jūs lūdzāt. 107 00:05:27,180 --> 00:05:29,765 Starp citu, es jums atdošu kādu HTML, un parasti tas HTML ir kādas 108 00:05:29,765 --> 00:05:32,351 404 lapas saturs. 109 00:05:32,351 --> 00:05:35,914 Un cats.com gadījumā, iespējams, tie ir daži jauki kaķi grozā ar 110 00:05:35,914 --> 00:05:39,477 skumju 404 purniņu blakus, jo jums būs skumji, ja jūs nesaņemsit 111 00:05:39,477 --> 00:05:43,040 lapu, kuru meklējāt. 112 00:05:43,040 --> 00:05:46,110 Tādi ir sava veida pamati tam, kā izskatās protokols, HTTP protokola 113 00:05:46,110 --> 00:05:49,180 pieprasījumi. 114 00:05:49,180 --> 00:05:52,913 Tie patiešām ir līdzīgi tam, kā mēs veiktu līdzīgu mijiedarbību, ja 115 00:05:52,913 --> 00:05:56,646 mēs kaut ko lūdzam un saņemam atpakaļ, vai rakstot vēstuli un gaidot 116 00:05:56,646 --> 00:06:00,380 atbildes vēstuli noteiktā formātā. 117 00:06:00,380 --> 00:06:05,285 Tas ir gandrīz tas, ko HTTP tikai kanonizē visām ierīcēm, kas vēlas 118 00:06:05,285 --> 00:06:10,190 piekļūt tīmekļa lapām hiperteksta pārsūtīšanai. 119 00:06:10,190 --> 00:06:13,645 Tātad formas rinda, šī metodes pieprasījuma mērķa HTTP versija tiek 120 00:06:13,645 --> 00:06:17,100 saukta par HTTP pieprasījuma rindiņu. 121 00:06:17,100 --> 00:06:21,640 Parasti tā ir pirmā lieta, kas tiek pārsūtīta kā daļa no HTTP 122 00:06:21,640 --> 00:06:26,180 pieprasījuma vai, ja jūs pieprasāt HTTP. 123 00:06:26,180 --> 00:06:28,075 Tas ir apmēram tāpat, kā es teicu, sakot: dārgais, vārds jūsu 124 00:06:28,075 --> 00:06:29,970 vēstules augšpusē. 125 00:06:29,970 --> 00:06:32,880 Viņi zina, ka jūs rakstāt viņiem vēstuli. 126 00:06:32,880 --> 00:06:35,985 Tātad tas ir ļoti līdzīgs apgalvojumam: es zinu, ka viņi veic HTTP 127 00:06:35,985 --> 00:06:39,090 pieprasījumu, un šis ir konkrētais formāts, ko viņi pieprasa. 128 00:06:39,090 --> 00:06:43,810 HTTP versija, iespējams, vienmēr būs HTTP/1/1. 129 00:06:43,810 --> 00:06:46,670 1.0 arī pastāv, bet vairs netiek īsti izmantota. 130 00:06:46,670 --> 00:06:50,460 CS50 vajadzībām GET, iespējams, vienmēr ir tas, ko izmantosit, kad 131 00:06:50,460 --> 00:06:54,250 faktiski veicat tiešus HTTP pieprasījumus. 132 00:06:54,250 --> 00:06:57,720 Bet POST ir vēl viena iespēja, par kuru mēs šobrīd nerunāsim. 133 00:06:57,720 --> 00:07:01,766 Un tad request-target ir tas, kuru mitinātāja servera lapu vēlaties 134 00:07:01,766 --> 00:07:05,812 iegūt. 135 00:07:05,812 --> 00:07:08,081 Kā jau teicu, šis mitinātāja nosaukums ir atsevišķa rinda, parasti 136 00:07:08,081 --> 00:07:10,350 vispārējā pieprasījuma otrā rinda. 137 00:07:10,350 --> 00:07:13,210 Un tā kopā mitinātāja nosaukums un pieprasījuma mērķis norāda 138 00:07:13,210 --> 00:07:16,070 konkrētu meklējamo resursu. 139 00:07:16,070 --> 00:07:19,505 Mūsu 404 piemērā pirms brīža es vēlreiz meklēju www.cats.com, kur 140 00:07:19,505 --> 00:07:22,940 cats.com būtu mitinātājs. 141 00:07:22,940 --> 00:07:26,300 Un savā pieprasījuma rindā es teicu /cats.html. 142 00:07:26,300 --> 00:07:27,790 Tas bija mana pieprasījuma mērķis. 143 00:07:27,790 --> 00:07:32,100 Tātad kopumā es prasīju saturu vai resursu, kas atrodas vietnē 144 00:07:32,100 --> 00:07:36,410 www.cats.com/cats.html. 145 00:07:36,410 --> 00:07:39,860 Pēc tam, pamatojoties uz to, vai resurss pastāv un vai serveris var 146 00:07:39,860 --> 00:07:43,310 piegādāt resursu atbilstoši klienta pieprasījumam, jūs varat saņemt 147 00:07:43,310 --> 00:07:46,760 atpakaļ dažādus statusa kodus. 148 00:07:46,760 --> 00:07:48,520 Dažus no šiem statusa kodiem esat redzējuši, jo tie ir daļa no 149 00:07:48,520 --> 00:07:50,280 atbildes. 150 00:07:50,280 --> 00:07:53,580 Daži no tiem, 200 OK, iespējams, ir diezgan klusi. 151 00:07:53,580 --> 00:07:55,650 Jūs, iespējams, nekad neesat redzējuši, ka lapa atbildētu 200 OK. 152 00:07:55,650 --> 00:07:56,890 Jūs vienkārši saņemat lapu. 153 00:07:56,890 --> 00:08:01,260 Tas nav kā 404 kļūda, kas parasti ir diezgan skaidra. 154 00:08:01,260 --> 00:08:03,850 Parasti redzat, ka tajā ir rakstīts 404. 155 00:08:03,850 --> 00:08:06,880 Tātad, parunāsim par to, kādi varētu būt daži no šiem statusa kodiem. 156 00:08:06,880 --> 00:08:09,500 Atkal, kad serveris mums atbild, viņi atbildēs: uz HTTP version 157 00:08:09,500 --> 00:08:12,120 status. 158 00:08:12,120 --> 00:08:14,020 Parasti HTTP/1.1. 159 00:08:14,020 --> 00:08:17,410 Kādi būs šie statusa kodi? 160 00:08:17,410 --> 00:08:18,890 Nu, mums varētu būt success. 161 00:08:18,890 --> 00:08:23,617 Tātad panākumu kategorijā mēs varētu iegūt kodu 200 ar tekstu OK. 162 00:08:23,617 --> 00:08:24,450 Ko tas nozīmē? 163 00:08:24,450 --> 00:08:25,491 Nu, viss ir labi. 164 00:08:25,491 --> 00:08:26,721 Jūs iesniedzāt derīgu pieprasījumu. 165 00:08:26,721 --> 00:08:27,720 Šeit ir derīga atbilde. 166 00:08:27,720 --> 00:08:30,060 Es varēju piegādāt tieši to, ko jūs gribējāt. 167 00:08:30,060 --> 00:08:32,600 Dažreiz jūs varat iegūt citas lietas, kuras jūs uzreiz nepamanīsit, 168 00:08:32,600 --> 00:08:35,140 taču tās ir zināmas neveiksmes. 169 00:08:35,140 --> 00:08:36,422 Tās sauc par novirzīšanu. 170 00:08:36,422 --> 00:08:37,630 Šeit ir divas izplatītas. 171 00:08:37,630 --> 00:08:40,594 301 Moved Permanently — tas būtībā nozīmē, ka lapa tagad atrodas 172 00:08:40,594 --> 00:08:43,559 jaunā vietā. 173 00:08:43,559 --> 00:08:44,920 Tā tur dzīvos mūžīgi. 174 00:08:44,920 --> 00:08:47,150 Un lielākā daļa pārlūkprogrammu jūs automātiski novirzīs. 175 00:08:47,150 --> 00:08:50,653 Tātad jūs arī nekad neredzēsit 301, ja vien neizmantojat patiešām 176 00:08:50,653 --> 00:08:54,156 novecojušu pārlūkprogrammu, iespējams, jo 301 atbilde ir daļa no 301 177 00:08:54,156 --> 00:08:57,660 atbildes daudzpunktes. 178 00:08:57,660 --> 00:08:59,577 Tā arī norāda, kur atrodas jaunā lapa. 179 00:08:59,577 --> 00:09:01,573 Tāpēc lielākā daļa pārlūkprogrammu jūs vienkārši novirzīs uz turieni, 180 00:09:01,573 --> 00:09:03,570 pieņemot, ka vēlaties tur doties. 181 00:09:03,570 --> 00:09:05,440 Dažreiz jūs saņemsiet arī 302 Found. 182 00:09:05,440 --> 00:09:07,850 Un šo jūs patiešām joprojām varat redzēt laiku pa laikam. 183 00:09:07,850 --> 00:09:09,720 Dažreiz lapas īslaicīgi pārvietojas. 184 00:09:09,720 --> 00:09:12,565 Tāpēc tas netiks iekļauts pieprasījumā, kas liek pārlūkprogrammai 185 00:09:12,565 --> 00:09:15,410 neatgriezeniski veikt izmaiņas ikreiz, kad tā redz jūsu pieprasījumu 186 00:09:15,410 --> 00:09:18,255 mainīt to uz kaut ko citu. 187 00:09:18,255 --> 00:09:20,482 Tātad jūs varētu redzēt 302 Found, kas būtībā saka, ka šī lapa dzīvo 188 00:09:20,482 --> 00:09:22,710 kaut kur citur. 189 00:09:22,710 --> 00:09:24,418 Bet tā tur nedzīvos mūžīgi. 190 00:09:24,418 --> 00:09:29,052 Tā galu galā, iespējams, atgriezīsies tur, kur jūs domājat tā ir. 191 00:09:29,052 --> 00:09:31,780 Tad jūs saņemsit tādas lietas kā klienta kļūdas. 192 00:09:31,780 --> 00:09:34,012 Tātad šīs ir tās, kuras jūs, iespējams, esat redzējuši. 193 00:09:34,012 --> 00:09:35,691 Jūs, iespējams, neesat redzējuši 200. vai 300. kļūdas, bet jūs, 194 00:09:35,691 --> 00:09:37,370 iespējams, pazīstat 400. kļūdas. 195 00:09:37,370 --> 00:09:40,130 Un tas ir tas, par ko mēs runāsim pēc brīža, arī par 500. 196 00:09:40,130 --> 00:09:42,580 Jūs varētu redzēt 401 Unauthorized. 197 00:09:42,580 --> 00:09:46,230 Parasti tas nozīmē, ka mēģināt piekļūt lapai, bet neesat pieteikušies. 198 00:09:46,230 --> 00:09:49,668 Tātad jūs mēģināt atvērt kādu profilu vai kaut ko pakalpojumā 199 00:09:49,668 --> 00:09:53,106 Facebook, vai mēģināt piekļūt kaut kam — jūs esat darbā. 200 00:09:53,106 --> 00:09:55,383 Jūs mēģināt kaut kam piekļūt no sava darba interneta, taču neesat 201 00:09:55,383 --> 00:09:57,660 pieteikušies. 202 00:09:57,660 --> 00:09:58,740 Jūs neredzat lapu. 203 00:09:58,740 --> 00:10:01,356 Jūs varat saņemt 401 Unauthorized, kas nozīmē, ka mēs, iespējams, 204 00:10:01,356 --> 00:10:03,973 varēsim apmierināt šo pieprasījumu, taču vispirms jums ir jāpiesakās, 205 00:10:03,973 --> 00:10:06,590 lai to izdarītu. 206 00:10:06,590 --> 00:10:09,040 Un otrādi, jūs varat saņemt 403 Forbidden, kas nozīmē, ka nav īsti 207 00:10:09,040 --> 00:10:11,490 svarīgi, vai esat pieteicies vai ne. 208 00:10:11,490 --> 00:10:13,020 Šis pieprasījums nav atļauts. 209 00:10:13,020 --> 00:10:15,320 Resurss atrodas serverī 210 00:10:15,320 --> 00:10:17,817 Bet jums nav atļauts tam piekļūt. 211 00:10:17,817 --> 00:10:20,221 Parasti tās ir iekšējās datnes, kas dažādu iemeslu dēļ atrodas 212 00:10:20,221 --> 00:10:22,625 serverī, bet nav paredzētas, lai tām piekļūtu no ārpasaules, un tāpēc 213 00:10:22,625 --> 00:10:25,030 tās ir aizliegtas. 214 00:10:25,030 --> 00:10:27,120 Tās tur dzīvo. 215 00:10:27,120 --> 00:10:28,440 Es nesaku, ka nevaru atrast. 216 00:10:28,440 --> 00:10:30,030 Bet es saku, ka nevaru jums to dot. 217 00:10:30,030 --> 00:10:32,071 Un nav svarīgi, vai esat pieteikušies vai ne. 218 00:10:32,071 --> 00:10:35,479 Un tad, protams, plaši izplatītā kļūda 404 Not Found. 219 00:10:35,479 --> 00:10:37,020 Datne serverī neeksistē. 220 00:10:37,020 --> 00:10:40,200 Es vēlētos apmierināt jūsu pieprasījumu, bet es nevaru. 221 00:10:40,200 --> 00:10:43,533 Dažkārt tiek parādītas arī servera kļūdas, no kurām visizplatītākā 222 00:10:43,533 --> 00:10:46,866 parasti ir 500 Internal Server Error, kas faktiski neko jums neteiks 223 00:10:46,866 --> 00:10:50,200 par to, kas ir noticis nepareizi. 224 00:10:50,200 --> 00:10:53,290 Bet patiesībā jūs neesat pieļāvuši kļūdu savā pieprasījumā. 225 00:10:53,290 --> 00:10:58,200 Faktiski serveris kaut kā nespēj izpildīt pieprasījumu. 226 00:10:58,200 --> 00:11:00,040 Tātad 500 ir vispārējā atbilde. 227 00:11:00,040 --> 00:11:02,880 Jūs redzēsit arī tādu informāciju kā Service Unavailable, kas, 228 00:11:02,880 --> 00:11:05,720 manuprāt, ir kods 503. 229 00:11:05,720 --> 00:11:07,702 Un Gateway Timeout — ja jums kādreiz ir bijusi lapa, kas vienkārši 230 00:11:07,702 --> 00:11:09,685 sēž tur un lādējas, lādējas, lādējas, un jūs nekad nezināt, vai tā 231 00:11:09,685 --> 00:11:11,667 tiks ielādēta vai ne, un galu galā tā vienkārši saka — vienkārši 232 00:11:11,667 --> 00:11:13,650 padodas. 233 00:11:13,650 --> 00:11:15,460 Tā ir 504 Gateway TImeout. 234 00:11:15,460 --> 00:11:19,956 Serveris vēlējās izpildīt jūsu pieprasījumu, taču servera pusē radās 235 00:11:19,956 --> 00:11:24,452 problēma, nevis jūsu pusē radās problēma. 236 00:11:24,452 --> 00:11:27,828 Tagad mēs varētu beigt stāstu šeit, bet tas, ko es tagad darīšu, ir - 237 00:11:27,828 --> 00:11:31,204 es atvēršu savu pārlūkprogrammu un parādīšu, kā jūs varētu redzēt 238 00:11:31,204 --> 00:11:34,580 dažus no šiem statusa kodiem, pat ja parasti jūs tos neredzat. 239 00:11:34,580 --> 00:11:39,090 Un mēs to darīsim, apskatot dažus izstrādātāja rīkus. 240 00:11:39,090 --> 00:11:42,050 Tā, tagad es esmu savā pārlūkprogrammas logā. 241 00:11:42,050 --> 00:11:45,840 Un es vēlos uzzināt mazliet vairāk par šiem HTTP pieprasījumiem. 242 00:11:45,840 --> 00:11:47,735 Kā es varu zināt — mēs noteikti zinām, vai lapa aiziet — ja kaut kas 243 00:11:47,735 --> 00:11:49,630 noiet greizi, mēs saņemam 404. 244 00:11:49,630 --> 00:11:50,465 Mēs visi to esam redzējuši. 245 00:11:50,465 --> 00:11:51,840 Mums nav nepieciešams to ilustrēt. 246 00:11:51,840 --> 00:11:53,048 Bet kādi ir daži citi? 247 00:11:53,048 --> 00:11:56,850 Un kā mēs redzētu šos pieprasījumus darbībā? 248 00:11:56,850 --> 00:11:59,990 Tāpēc pirmā lieta, ko es darīšu, ir atvērt Developer Tools. 249 00:11:59,990 --> 00:12:02,867 Tāpēc izstrādātāja rīki ir iebūvēti lielākajā daļā moderno 250 00:12:02,867 --> 00:12:05,745 pārlūkprogrammu un ļauj mums redzēt lietas, kuras mēs citādi 251 00:12:05,745 --> 00:12:08,622 neredzam — kāda papildu informācija tiek pārsūtīta zem mūsu tīmekļa 252 00:12:08,622 --> 00:12:11,500 pieprasījumiem. 253 00:12:11,500 --> 00:12:12,790 Es šeit izmantoju Google Chrome. 254 00:12:12,790 --> 00:12:15,759 Un, lai pārlūkā Chrome atvērtu izstrādātāja rīkus, vienkārši 255 00:12:15,759 --> 00:12:18,729 nospiediet taustiņu F-12, un tas atvērs to sānos. 256 00:12:18,729 --> 00:12:20,249 Kad es ierakstīšu pieprasījumu, es pietuvināšu, lai mēs varētu 257 00:12:20,249 --> 00:12:21,770 redzēt, kas šeit notiek. 258 00:12:21,770 --> 00:12:27,098 Bet es darīšu savā pārlūkprogrammas joslā — un es pietuvināšu šeit — 259 00:12:27,098 --> 00:12:32,427 es nosūtīšu pieprasījumu vietnei www.google.com. 260 00:12:32,427 --> 00:12:34,260 Mēs visi, iespējams, kādreiz esam izteikuši šo pieprasījumu. 261 00:12:34,260 --> 00:12:35,400 Es nospiedīšu Enter. 262 00:12:41,920 --> 00:12:46,400 Tagad savos izstrādātāja rīkos esmu izvēlējies cilni Network. 263 00:12:46,400 --> 00:12:48,010 Un jūs šeit pamanāt daudzas lietas. 264 00:12:48,010 --> 00:12:49,871 Paskatieties uz šiem — 200 OK, 200 OK, daži no šiem statusa kodiem 265 00:12:49,871 --> 00:12:51,732 parādās. 266 00:12:51,732 --> 00:12:53,356 Es nezinu, kāpēc es saņemu 302 Found. 267 00:12:53,356 --> 00:12:54,860 Es nezināju, ka es to redzēšu. 268 00:12:54,860 --> 00:12:57,505 Bet būtībā ievērojiet, ka, runājot par manu Google pieprasījumu, es 269 00:12:57,505 --> 00:13:00,150 iesniedzu ļoti vienkāršu pieprasījumu Google lapai. 270 00:13:00,150 --> 00:13:02,910 Un mana pieprasījuma piegādes procesā Google manā vārdā acīmredzot ir 271 00:13:02,910 --> 00:13:05,670 iesniedzis daudz citu pieprasījumu. 272 00:13:05,670 --> 00:13:08,830 Bet es esmu iesniedzis Google lapas saņemšanas pieprasījumu, un es 273 00:13:08,830 --> 00:13:11,990 saņemu daudz 200 OK. 274 00:13:11,990 --> 00:13:17,170 Es savā ekrānā neredzu 200 OK, taču saņemu daudz pieprasījumu. 275 00:13:17,170 --> 00:13:20,117 Vēl viena lieta, par kuru esmu diezgan pārliecināts, ka darbosies, 276 00:13:20,117 --> 00:13:23,064 ir — tie, kas patiešām ir no vecās skolas, jūs zināt, ka Facebook ne 277 00:13:23,064 --> 00:13:26,012 vienmēr atradās vietnē Facebook.com. 278 00:13:26,012 --> 00:13:29,780 Sākumā tas bija vietnē wwww.thefacebook.com. 279 00:13:29,780 --> 00:13:33,560 Acīmredzot viņi kādu laiku nevarēja piekļūt vietnei Facebook.com. 280 00:13:33,560 --> 00:13:35,870 Un tāpēc es šeit gaidu informāciju. 281 00:13:35,870 --> 00:13:37,315 Un mēs redzēsim, vai tas izdosies. 282 00:13:37,315 --> 00:13:40,647 Es šeit gaidu informāciju, ka Facebook ir neatgriezeniski pārcēlies 283 00:13:40,647 --> 00:13:43,980 no vietnes thefacebook.com uz Facebook.com. 284 00:13:43,980 --> 00:13:48,280 Tāpēc es gaidu, ka izstrādātāja rīkos es saņemšu 301 paziņojumu, ka 285 00:13:48,280 --> 00:13:52,580 Facebook ir neatgriezeniski pārcēlies uz citu vietni. 286 00:13:52,580 --> 00:13:59,070 Atkal, es neredzēšu 301 savā pārlūkprogrammas ekrānā. 287 00:13:59,070 --> 00:14:01,380 Un, tā kā tas ir 301, tas ir pastāvīgs gājiens. 288 00:14:01,380 --> 00:14:03,745 Mana pārlūkprogramma, tā kā tā ir moderna pārlūkprogramma, droši vien 289 00:14:03,745 --> 00:14:06,110 mani novirzīs uz vietni Facebook.com. 290 00:14:06,110 --> 00:14:07,260 Bet paskatīsimies, kas notiks. 291 00:14:07,260 --> 00:14:09,340 Un tagad es došos uz thefacebook.com. 292 00:14:09,340 --> 00:14:11,370 Un jā, tur tā tieši ir augšpusē. 293 00:14:11,370 --> 00:14:13,390 Tā aizgāja, bet tā bija tur. 294 00:14:13,390 --> 00:14:14,820 Ļaujiet man atritināt šeit uz augšu. 295 00:14:18,004 --> 00:14:18,920 Tepat augšā. 296 00:14:18,920 --> 00:14:22,165 Es iesniedzu pieprasījumu vietnei thefacebook.com, un es saņemu 297 00:14:22,165 --> 00:14:25,410 atbildi, ka šī lapa ir neatgriezeniski pārvietota. 298 00:14:25,410 --> 00:14:27,770 Un tad 307 šeit ir Internal Redirect. 299 00:14:27,770 --> 00:14:30,550 Un tas ir tas, kas mani patiesībā pārvirzīja uz daudz pazīstamāku 300 00:14:30,550 --> 00:14:33,330 www.facebook.com. 301 00:14:33,330 --> 00:14:38,480 Tātad šie atbildes kodi joprojām notiek, pat ja mēs tos neredzam. 302 00:14:38,480 --> 00:14:40,785 Es netaisos ilustrēt 401, 403, 404, jo jūs, iespējams, esat tos 303 00:14:40,785 --> 00:14:43,090 redzējuši dažādās situācijās. 304 00:14:43,090 --> 00:14:46,735 Un 500, es vienkārši būšu tāds - kā mums paveiktos, ja iegūtu 500, jo 305 00:14:46,735 --> 00:14:50,380 mēs nezinām, kuri serveri pašlaik nekur nedarbojas. 306 00:14:50,380 --> 00:14:54,495 Taču šie kodi pastāv, un ir veids, kā tiem piekļūt, pat ja mēs tos 307 00:14:54,495 --> 00:14:58,610 savās sistēmās neredzam. 308 00:14:58,610 --> 00:14:59,530 Es esmu Dags Loids. 309 00:14:59,530 --> 00:15:01,570 Šis ir CS50.