JavaRush /Java Blog /Random-TK /Bölüm 3. HTTP / HTTPS protokollary

Bölüm 3. HTTP / HTTPS protokollary

Toparda çap edildi
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 . Bölüm 3. HTTP / HTTPS protokollary - 1

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:
  1. Başlangyç setir - hyzmat maglumatlaryny kesgitleýär.
  2. Sözbaşylar - habar parametrleriniň beýany.
  3. Habar organy (Beden) - habar maglumatlary. Sözbaşylardan boş çyzyk bilen bölünmeli.
HTTP protokolyny ulanyp, serwere haýyş (haýyş) iberip we serwerden jogap (jogap) alyp bilersiňiz. Islegleriň we jogaplaryň birneme üýtgeşik parametrleri bar.

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.
Soňra sözbaşylar:
  • Hoster eýesi - haýyşa ýüzlenýän öý eýesi;
  • Ulanyjy-agent haýyşy iberýän müşderi.
Habar bölümi ýok. HTTP haýyşynda diňe başlangyç setir we Host sözbaşysy talap edilýär. Indi hemme zada tertipli seredeliň. HTTP haýyşynda käbir usul bolmaly. Jemi dokuzy bar: GET, POST, PUT, OPTIONS, HEAD, PATCH, DELETE, TRACE, CONNECT. Iň ýaýranlary GET we POST. Bu iki usul ilki bilen ýeterlik bolar. GET - serwerden mazmun soraýar. Şonuň üçin GET usuly bilen haýyşlaryň habar organy ýok. Necessaryöne zerur bolsa, parametrleri şu formatda ýol arkaly iberip bilersiňiz: https://cdn.javarush.com/images/article/155cea79-acfd-4968-9361-ad585e939b82/original.pngsend?name1=value1&name2=value2 Ine: javarush .com - öý eýesi, / ibermek - haýyş ýoly , ? - haýyş parametrleriniň yzarlaýandygyny görkezýän bölüji. Netijede, parametrler ampersand bilen bölünen açar = baha formatda görkezilýär. POST - serwerde maglumat çap edýär. POST haýyşy dürli maglumatlary geçirip biler: açar = baha formatdaky parametrler, JSON, HTML kody ýa-da faýllar. Informationhli maglumatlar habaryň mazmunyna iberilýär. Mysal üçin:
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;
Koddaky ikinji we üçünji sanlar jogaby jikme-jik görkezýär. Mysal üçin:
  • 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.
Jogap statusynyň kody bilen birlikde, belli bir statusyň nämäni aňladýandygyna düşünmek üçin ýagdaý beýany hem iberilýär. HTTP protokoly gaty amaly: müşderi bilen serweriň arasynda çeýe aragatnaşyk gurup bilersiňiz, köp sanly sözbaşy berýär. Requesthli haýyş we jogap sözbaşylary, haýyş usullary we jogap statusy kodlary bir makalada seredilip bilinmez. Zerur bolsa, ähli nuanslary beýan edýän resmi protokol spesifikasiýasyny okap bilersiňiz . HTTP protokoly adatça 80-nji portda ulanylýar, şonuň üçin 80-nji portda gutarýan adresi göreniňizde, oňa HTTP arkaly girip boljakdygyna göz ýetirip bilersiňiz. Tehnologiýanyň ösmegi we internetdäki şahsy maglumatlaryň işjeň hereket etmegi bilen, müşderiniň serwere iberýän maglumatlary üçin goşmaça goragy nädip üpjün etmelidigi barada pikirlenmeli bolduk. Netijede HTTPS teswirnamasy boldy.

HTTPS bilen HTTP arasynda näme tapawut bar?

HTTPS sintaktik taýdan HTTP protokolyna meňzeýär, ýagny şol bir başlangyç setirleri we sözbaşylary ulanýar. Onlyeke-täk tapawutlar goşmaça şifrlemek we deslapky port (443) . HTTPS HTTP bilen TCP arasynda, ýagny programma we transport gatlaklarynyň arasynda kodlanýar. Onuň nämedigini ýatdan çykaran bolsaňyz, OSI modeli baradaky makala göz aýlaň . Häzirki zaman şifrlemek standarty TLS. Bu mowzuga gaty çuňňur girip bilmeris, ýöne maglumatlaryň transport gatlagyna ýetmänkä şifrlemegiň ýüze çykýandygyny ýadyňyzdan çykarmaň . HTTPS, haýyşyň iberilýän ýerinden we portundan başga ähli maglumatlary şifrleýär. HTTP ýerine HTTPS protokolyny ulanmak üçin serweri üýtgetmek üçin serwer koduny üýtgetmek zerurlygy ýok. Bu aýratynlyk, indiki makalalarda gürleşjek servlet gaplarda işleýär. Bularyň hemmesi şu gün üçin. Aöne bir minut garaşyň. HTTP isleglerini duýmak üçin Google Chrome açyň, F12 basyň, Ulgam goýmasyny saýlaň. Brauzeriňiz tarapyndan iberilen / alnan ähli haýyşlar we jogaplar şu ýerde görkeziler. Bölüm 4. Maven esaslary 5-nji bölüm. Webönekeý web programmasyny ýazmak 6-njy bölüm. Servlet gaplary 7-nji bölüm. MVC (Model-View-Controller) nagşy bilen tanyşdyrmak 8-nji bölüm.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION