Įvadas į HTTP: viskas, ką reikia žinoti

Šiame straipsnyje aš apžvelgsiu, kaip internetas veikia pagrindiniu lygmeniu.

Pagrindinė technologija yra HTTP - hiperteksto perdavimo protokolas. Tai ryšio protokolas, kurį naudojate naršydami internete.

Esminiu lygiu, kai lankotės svetainėje, jūsų naršyklė pateikia HTTP užklausą serveriui. Tada tas serveris atsako pateikdamas šaltinį (vaizdą, vaizdo įrašą ar tinklalapio HTML) - kurį jūsų naršyklė jums parodo.

Tai yra HTTP pranešimais pagrįstas modelis. Kiekviena HTTP sąveika apima užklausą ir atsakymą.

Pagal savo pobūdį HTTP yra be pilietybės.

Be pilietybės reiškia, kad visi prašymai yra atskiri vienas nuo kito. Taigi kiekvienoje jūsų naršyklės užklausoje turi būti pakankamai informacijos, kad serveris galėtų įvykdyti užklausą. Tai taip pat reiškia, kad kiekviena pranešimu pagrįsto HTTP modelio operacija apdorojama atskirai nuo kitų.

URL

URL („Uniform Resource Locator“) yra bene žinomiausia žiniatinklio sąvoka. Tai taip pat yra viena iš svarbiausių ir naudingiausių sąvokų. URL yra žiniatinklio adresas, naudojamas žiniatinklio ištekliams identifikuoti.

Žiniatinklio idėja sukonstruota pagal išteklius. Nuo pat pradžių žiniatinklis buvo teksto / HTML failų, dokumentų, vaizdų ir kt. Dalijimosi platforma, todėl tai gali būti laikoma išteklių kolekcija.

Protokolas  - dažniausiai jie yra HTTP (arba HTTPS - saugiai HTTP versijai).

Kiti žymūs protokolai yra:

  • Failų perdavimo protokolas (FTP) - tai standartinis protokolas, naudojamas failams perkelti iš kliento į serverį tinklu.
  • Paprastas pašto perdavimo protokolas (SMTP) yra el. Pašto perdavimo standartas.

Domenas  - vardas, naudojamas vienam ar daugiau IP adresų, kuriuose yra šaltinis, identifikavimui.

Kelias - nurodo išteklių vietą serveryje. Ji naudoja tą pačią logiką kaip išteklių vieta, naudojama įrenginyje, kuriame skaitote šį straipsnį (ty /search/cars/VWBeetle.pdf arba C: / my cars / VWBeetle.pdf).

Parametrai  - papildomi duomenys, naudojami serverio ištekliui identifikuoti arba filtruoti.

Pastaba : Ieškodami straipsnių ir daugiau informacijos apie HTTP galite susidurti su terminu URI (arba vienodu išteklių identifikatoriumi). URI kartais naudojamas vietoj URL, bet dažniausiai oficialiose specifikacijose ir žmonėms, norintiems pasirodyti. :)

HTTP užklausos

HTTP kiekvienoje užklausoje turi būti URL adresas. Be to, užklausai reikalingas metodas. Keturi pagrindiniai HTTP metodai yra šie:

  • GAUTI
  • ĮDĖK
  • POST
  • IŠTRINTI

Aš paaiškinsiu šiuos metodus ir dar daugiau šio straipsnio skyriuje „HTTP metodai“.

Šie metodai tiesiogiai atitinka veiksmus:

  • skaityti
  • atnaujinti
  • sukurti
  • Ištrinti

Visuose HTTP pranešimuose yra viena ar daugiau antraščių, po kurių pasirenkamas pranešimo turinys. Turinyje yra duomenys, kurie bus išsiųsti kartu su užklausa, arba duomenys, gauti kartu su atsakymu.

Pirmoje kiekvienos HTTP užklausos dalyje yra trys elementai:

Pavyzdys:

  • GET / add / search-result? Item = vw + vabalas HTTP / 1.1

Kai URL yra „?“ ženklas, tai reiškia, kad jame yra užklausa. Tai reiškia, kad jis siunčia prašomo šaltinio parametrus.

  1. Pirmoji dalis yra metodas, nurodantis, kuris HTTP metodas yra naudojamas. Dažniausiai naudojamas GET metodas. GET metodas nuskaito šaltinį iš žiniatinklio serverio ir kadangi GET neturi pranešimo turinio po antraštės.
  2. Antroji dalis yra prašomas URL.
  3. Trečioji dalis yra naudojama HTTP versija. 1.1 versija. yra labiausiai paplitusi versija daugumai naršyklių, tačiau perima 2.0 versija.

HTTP užklausoje taip pat yra keletas kitų įdomių dalykų:

Persiuntėjo antraštė  - nurodo URL, iš kurio kilo užklausa.

„User-Agent“ antraštė  - papildoma informacija apie naršyklę, naudojamą užklausai generuoti.

Pagrindinio kompiuterio antraštė  - unikaliai identifikuoja pagrindinio kompiuterio vardą; tai būtina, kai tame pačiame serveryje yra keli tinklalapiai.

Slapuko antraštė  - pateikia klientui papildomus parametrus.

HTTP atsakymai

Kaip ir HTTP užklausose, HTTP atsakymus taip pat sudaro trys elementai:

Pavyzdys:

HTTP / 1.1 200 Gerai

  1. Pirmoji dalis yra naudojama HTTP versija.
  2. Antroji dalis yra skaitinis užklausos rezultato kodas.
  3. Trečioji dalis yra tekstinis antrosios dalies aprašymas.

HTTP atsakyme yra keletas kitų įdomių dalykų:

Serverio antraštė  - informacija apie tai, kuri interneto serverio programinė įranga naudojama.

„Set-Cookie“ antraštė  - išleidžia slapuką naršyklei.

Pranešimo turinys  - įprasta, kad HTTP atsakymas turi pranešimo turinį.

„Content-Length“ antraštė  - nurodo pranešimo turinio dydį baitais.

HTTP metodai

Labiausiai paplitę metodai yra GET ir POST. Bet yra ir keletas kitų.

GAUTI  - Jūs naudojate šį metodą prašydami duomenų iš nurodyto šaltinio, kai duomenys jo jokiu būdu nekeičia. GET užklausos nepakeičia išteklių būklės.

POST  - Šį metodą naudojate duomenims siųsti į serverį, kad sukurtumėte šaltinį.

PUT - šį metodą naudojate norėdami atnaujinti esamą serverio išteklių naudodami užklausos turinio turinį. Pagalvokite apie tai, kaip ką nors „redaguoti“.

GALVA  - Jūs naudojate šį metodą taip pat, kaip ir GET, tačiau išskirdami, kad grąžinant HEAD metodą atsakyme neturėtų būti kūno. Bet grąžinime bus tos pačios antraštės, tarsi būtų naudojama GET. Prieš pateikdami GET užklausą, naudojate HEAD metodą, kad patikrintumėte, ar yra išteklių.

TRACE -  šį metodą naudojate diagnostikos tikslais. Atsakymo tekste bus nurodytas tikslus užklausos pranešimo turinys.

PARINKTYS  - šį metodą naudojate aprašydami ryšio parinktis (HTTP metodus), kurios yra prieinamos tiksliniam ištekliui.

PATCH -  šį metodą naudojate daliniams išteklių pakeitimams taikyti.

DELETE - naudojate šį metodą norėdami ištrinti nurodytą šaltinį.

POILSIS

Reprezentacinės būsenos perkėlimas (REST) ​​yra architektūros stilius, kai užklausose ir atsakymuose pateikiama esama sistemos išteklių būsena.

„Reguliarus“ būdas:

  • //carapp.com/search?make=wv&model=beetle

REST stiliaus:

  • //carapp.com/search/vw/beetle

Čia galite sužinoti daugiau apie REST, jei jums įdomu.

HTTP antraštės

Yra trys pagrindiniai komponentai, kurie sudaro užklausos / atsakymo struktūrą. Jie apima:

  • Pirma eilė
  • Antraštės
  • Kūnas / turinys

Mes jau kalbėjome apie pirmąją eilutę HTTP užklausose ir atsakymuose, taip pat buvo paminėta kūno funkcija. Dabar kalbėsime apie HTTP antraštes.

HTTP antraštės pridedamos po pirmos eilutės ir apibrėžiamos kaip pavadinimas: reikšmės poros, atskirtos dvitaškiu. HTTP antraštės naudojamos papildomiems parametrams siųsti kartu su užklausa ar atsakymu.

Kaip jau sakiau, pranešimo turinys apima duomenis, kuriuos reikia siųsti kartu su prašymu, arba duomenis, gautus kartu su atsakymu.

Yra įvairių tipų antraštės, kurios suskirstytos pagal jų naudojimą į 4 plačias kategorijas:

  • Bendra antraštė  - antraštės, kurias galima naudoti tiek užklausose, tiek atsakymo pranešimuose ir kurios nepriklauso nuo duomenų, kuriais keičiamasi.
  • Užklausos antraštė  - šios antraštės apibrėžia prašomų duomenų parametrus arba parametrus, kurie suteikia svarbios informacijos apie klientą, pateikiantį užklausą.
  • Atsakymo antraštė  - šiose antraštėse yra informacijos apie gaunamą atsakymą.
  • Subjekto antraštė  - subjekto antraštės apibūdina turinį, kuris sudaro pranešimo turinį.

HTTP būsenos kodai

Naršydami žiniatinklyje galite susidurti su puslapiais „404 klaida: nerasta“ arba „500 klaidų: serveris neatsako“.

Tai yra HTTP būsenos kodai.

Kiekvieno HTTP atsakymo pranešimo pirmoje eilutėje turi būti HTTP būsenos kodas, nurodantis užklausos rezultatą.

Yra penkios būsenos kodų grupės, sugrupuotos pagal pirmąjį skaitmenį:

  • 1xx - informacinis.
  • 2xx - užklausa buvo sėkminga.
  • 3xx - klientas yra nukreiptas į kitą šaltinį.
  • 4xx - užklausoje yra kažkokia klaida.
  • 5xx - vykdant užklausą serveryje įvyko klaida.

Čia pateikiamas visas atsakymo į HTTP būseną kodų sąrašas ir jų paaiškinimas.

HTTPS (saugus hiperteksto perdavimo protokolas)

Saugi HTTP protokolo versija yra „HyperText Transfer Protocol Secure“ (HTTPS). HTTPS teikia šifruotą ryšį tarp naršyklės (kliento) ir svetainės (serverio).

HTTPS ryšio protokolas yra užšifruotas naudojant „Transport Layer Security“ (TLS) arba „Secure Sockets Layer“ (SSL).

Todėl protokolas taip pat dažnai vadinamas HTTP per TLS arba HTTP per SSL.

Tiek TLS, tiek SSL protokoluose naudojama asimetrinė šifravimo sistema. Asimetrinės šifravimo sistemos pranešimui užšifruoti naudoja viešąjį raktą (šifravimo raktą) ir privatųjį raktą (iššifravimo raktus).

Kiekvienas gali naudoti viešąjį raktą šifruoti pranešimą. Tačiau privatūs raktai yra slapti, o tai reiškia, kad iššifruoti pranešimą gali tik numatytas imtuvas.

SSL / TLS rankos paspaudimas

Kai prašote HTTPS ryšio su svetaine, svetainė siunčia savo SSL sertifikatą į jūsų naršyklę. Procesas, kai jūsų naršyklė ir svetainė inicijuoja ryšį, vadinamas „SSL / TLS rankos paspaudimu“.

SSL / TLS rankos paspaudimas apima keletą veiksmų, kai naršyklė ir svetainė patvirtina viena kitą ir pradeda ryšį per SSL / TLS tunelį.

Kaip tikriausiai pastebėjote, kai HTTPS ryšyje naudojamas patikimas saugus tunelis, naršyklės adreso juostoje rodoma žalia spynos piktograma.

HTTPS pranašumai

Pagrindiniai HTTPS privalumai yra šie:

  • Kliento informacija, pvz., Kreditinių kortelių numeriai ir kita neskelbtina informacija, yra užšifruota ir jos negalima perimti.
  • Lankytojai gali patvirtinti, kad esate registruota įmonė ir ar jums priklauso domenas.
  • Klientai žino, kad jie neturėtų lankytis svetainėse be HTTPS, todėl jie labiau tiki ir užbaigia pirkimus iš svetainių, naudojančių HTTPS.

Ačiū, kad skaitėte! Peržiūrėkite daugiau panašių straipsnių mano „freeCodeCamp“ profilyje. Peržiūrėkite kitus įdomius dalykus, kuriuos sukūriau savo „GitHub“ puslapyje.