Bu material “Kärhananyň ösüşine giriş” seriýasynyň bir bölegidir. Öňki makalalar:
Salam! Bu gün HTTP we HTTPS protokollaryna düşüneris. Firstöne ilki bilen bir nokady aýdyňlaşdyralyň: OSI modeliniň amaly gatlagynda torda maglumat geçirmek protokollary hakda gürleşýäris. .Adyňyzda bolsa, öňki makalalaryň birinde OSI modelini ara alyp maslahatlaşdyk. Youadyňyzdan çykmasa, ine şu ýerde .
HTTP protokolynyň diňe tekstden ybaratdygyny derrew bellemelidiris. Dogrusy, bu tekstiň ýerleşýän gurluşy bilen bizi has gyzyklandyrýar. Her habar üç bölekden ybarat:
Maglumat geçirmek protokoly näme
Bu, dürli hyzmatlary döredijiler bir görnüşde maglumat iberýänligi sebäpli umumy kabul edilen şertnama berlen at. Mysal üçin, Google Chrome ulanyp, Facebook we Twitter-den maglumat alyp bilersiňiz, sebäbi döredijiler ony adaty HTTP protokoly arkaly iberýärler we brauzeriňiz ony işläp bilýär. Bitewi düzgünler serwer tarapyny döredijileriň özleri üçin hem örän amatly: size maglumatlary öwürip we zerur protokol ulanyp iberip biljek köp kitaphanalar bar. Aslynda HTTP HTML sahypalaryny geçirmek üçin teswirnama hökmünde kabul edildi. Bu uzak wagtlap şeýle bolupdy, ýöne indi programmistler köplenç setirleri we media faýllaryny üstünden geçirýärler. Umuman aýdanyňda, bu teswirnama köp taraply we çeýe bolup, ulanmak hakykatdanam aňsat. Indi muny nädip etmelidigini öwreneliň.
HTTP gurluşy
HTTP protokolynyň diňe tekstden ybaratdygyny derrew bellemelidiris. Dogrusy, bu tekstiň ýerleşýän gurluşy bilen bizi has gyzyklandyrýar. Her habar üç bölekden ybarat:
- Başlangyç setir - hyzmat maglumatlaryny kesgitleýär.
- Sözbaşylar - habar parametrleriniň beýany.
- Habar organy (Beden) - habar maglumatlary. Sözbaşylardan boş çyzyk bilen bölünmeli.
HTönekeý HTTP haýyşy nähili görünýär
GET / HTTP/1.1
Host: javarush.com
User-Agent: firefox/5.0 (Linux; Debian 5.0.8; en-US; rv:1.8.1.7)
Başlangyç setirde:
- GET - haýyş usuly;
- / - haýyş ýoly (ýol);
- HTTP / 1.1 - maglumatlary geçirmek protokolynyň wersiýasy.
- Hoster eýesi - haýyşa ýüzlenýän öý eýesi;
- Ulanyjy-agent haýyşy iberýän müşderi.
POST /user/create/json HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 28
Host: javarush.com
{
"Id": 12345,
"User": "John"
}
Talap javarush.com/user/create/json-a iberilýär, protokol wersiýasy HTTP / 1.1. Kabul etmek, müşderiniň haýsy jogap formatyna garaşýandygyny kesgitleýär, Mazmun görnüşi habar korpusynyň haýsy formatda iberilendigini kesgitleýär. Mazmuny-uzynlygy - bedendäki nyşanlaryň sany. HTTP haýyşynda köp dürli sözbaşy bolup biler. Has giňişleýin maglumatlary protokol spesifikasiýasynda tapyp bilersiňiz .
HTTP jogaplary
Haýyşy alandan soň serwer ony işleýär we müşderä jogap iberýär:HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Content-Length: 98
<html>
<head>
<title>An Example Page</title>
</head>
<body>
<p>Hello World</p>
</body>
</html>
Jogapdaky başlangyç setirde protokol wersiýasy (HTTP / 1.1), Status kody (200), Status beýany (OK) bar. Sözbaşylar mazmunyň görnüşini we uzynlygyny görkezýär. Jogap mazmunynda brauzeriň HTML sahypasyna çekjek HTML kody bar.
Jogap status kodlary
Habar göwrümi we sözbaşylar bilen hemme zat düşnüklidir, ýöne status kodlary barada birnäçe söz aýtmaga mynasyp. Jogap statusy kodlary elmydama üç san bolup, koduň birinji belgisi jogap kategoriýasyny görkezýär:- 1xx - maglumat. Isleg kabul edildi, serwer dowam etmäge taýyn;
- 2xx - üstünlikli. Isleg kabul edildi, düşünildi we işlenildi;
- 3xx - gönükdirme. Islegiň üstünde işlemek üçin aşakdaky ädimler ýerine ýetirilmelidir;
- 4xx - müşderiniň ýalňyşlygy. Islegde ýalňyşlyklar bar ýa-da teswirnama laýyk gelmeýär;
- 5xx - serwer ýalňyşlygy. Serwer dogry düzülen hem bolsa haýyşy gaýtadan işläp bilmedi;
- 200 Bolýar - haýyş kabul edildi we üstünlikli işlenildi;
- 201 Döredildi - haýyş kabul edildi we üstünlikli işlenildi, netijede täze çeşme ýa-da mysal döredildi;
- 301 Hemişelik göçürildi - talap edilýän çeşme hemişelik göçürildi we ondan soňky haýyşlar täze salgyda ýüze çykmaly;
- 307 Wagtlaýyn gönükdirme - çeşme wagtlaýyn göçürildi. Häzirlikçe, awtomatiki gönükdirmäni ulanyp bilersiňiz;
- 403 Gadagan - haýyş düşnükli, ýöne ygtyýarnama talap edilýär;
- 404 Tapylmady - serwer bu salgyda çeşme tapmady;
- 501 ýerine ýetirilmedi - serwer bu haýyşa jogap bermek üçin işlemegi goldamaýar;
- 505 HTTP wersiýasy goldanylmaýar - serwer HTTP protokolynyň görkezilen wersiýasyny goldamaýar.
GO TO FULL VERSION