Bevezetés a HTTP-be: minden, amit tudnia kell

Ebben a cikkben végigvezetem Önt a világháló alapvető működésén.

Az alapvető technológia a HTTP - Hypertext Transfer Protocol. Ez az a kommunikációs protokoll, amelyet az internet böngészése során használ.

Alapvető szinten, amikor meglátogat egy webhelyet, a böngészője HTTP-kérést küld egy szerverhez. Ezután a szerver válaszol egy erőforrással (képpel, videóval vagy egy weboldal HTML-jével) - amelyet a böngésző akkor megjelenít az Ön számára.

Ez a HTTP üzenetalapú modellje. Minden HTTP-interakció tartalmaz kérést és választ.

A HTTP természeténél fogva hontalan.

A hontalan azt jelenti, hogy minden kérés elkülönül egymástól. Tehát minden, a böngészőből érkező kérelemnek elegendő információt kell tartalmaznia ahhoz, hogy a szerver teljesíthesse a kérést. Ez azt is jelenti, hogy a HTTP üzenet alapú modelljének minden tranzakcióját külön-külön dolgozzuk fel a többitől.

URL-ek

Az URL (Uniform Resource Locator) valószínűleg a web legismertebb fogalma. Ez is az egyik legfontosabb és leghasznosabb fogalom. Az URL egy webcím, amelyet a webes erőforrások azonosítására használnak.

A web ötlete az erőforrások köré épül fel. Kezdeteitől fogva a web volt a platform a szöveges / HTML fájlok, dokumentumok, képek stb. Megosztására, és mint ilyen, erőforrások gyűjteményének tekinthető.

Protokoll  - Leggyakrabban HTTP (vagy a HTTP biztonságos verziójának HTTPS).

Egyéb figyelemre méltó protokollok:

  • Fájlátviteli protokoll (FTP) - egy szabványos protokoll, amelyet fájlok kliens és szerver közötti hálózaton keresztüli továbbítására használnak.
  • Az SMTP (Simple Mail Transfer Protocol) az e-mail továbbítás szabványa.

Domain  - Az erőforrás egy vagy több IP-címének azonosítására szolgáló név.

Elérési út - Megadja az erőforrás helyét a kiszolgálón. Ugyanazt a logikát használja, mint az eszköz azon erőforrás-helye, ahol ezt a cikket olvassa (pl. /Search/cars/VWBeetle.pdf vagy C: / my cars / VWBeetle.pdf).

Paraméterek  - A szerver erőforrásának azonosításához vagy szűréséhez használt további adatok.

Megjegyzés : Amikor cikkeket és további információkat keres a HTTP-ről, találkozhat az URI (vagy egységes erőforrás-azonosító) kifejezéssel. Az URI-t időnként URL helyett használják, de leginkább hivatalos specifikációkban és olyan embereknél, akik megmutatni akarják magukat. :)

HTTP kérések

A HTTP-ben minden kérelemnek tartalmaznia kell URL-címet. Ezenkívül a kérelemnek metódusra van szüksége. A négy fő HTTP módszer a következő:

  • KAP
  • PUT
  • POST
  • TÖRÖL

Ezeket és még sok mást a cikk HTTP metódusai szakaszában ismertetem.

Ezek a módszerek pedig közvetlenül megfelelnek a cselekvéseknek:

  • olvas
  • frissítés
  • teremt
  • töröl

Minden HTTP-üzenet egy vagy több fejlécet tartalmaz, amelyet egy opcionális üzenettörzs követ. A törzs tartalmazza azokat az adatokat, amelyeket a kéréssel együtt elküldünk, vagy azokat, amelyeket a válaszsal kapunk.

Minden HTTP-kérelem első része három elemet tartalmaz:

Példa:

  • GET / add / search-result? Item = vw + bogár HTTP / 1.1

Amikor az URL-ben „?” Szerepel jel, ez azt jelenti, hogy tartalmaz egy lekérdezést. Ez azt jelenti, hogy elküldi a kért erőforrás paramétereit.

  1. Az első rész egy olyan módszer, amely megmondja, hogy melyik HTTP-módszert használják. Leggyakrabban a GET módszert alkalmazzák. A GET metódus lekér egy erőforrást a webszerverről, és mivel a GET nem rendelkezik üzenet törzssel, a fejléc után semmi sem szükséges.
  2. A második rész egy kért URL.
  3. A harmadik rész egy használt HTTP verzió. 1.1 verzió a legtöbb böngészőnél a leggyakoribb verzió, azonban a 2.0 verzió veszi át az irányítást.

Van még néhány érdekes dolog egy HTTP-kérelemben:

Referer header  - megadja az URL-t, ahonnan a kérés származik.

User-Agent fejléc  - további információk a kérés előállításához használt böngészőről.

Host fejléc  - egyedileg azonosítja a gazdagép nevét; akkor szükséges, ha ugyanazon a szerveren több weboldalt tárolnak.

Cookie-fejléc  - további paramétereket küld az ügyfélnek.

HTTP válaszok

A HTTP-kérésekhez hasonlóan a HTTP-válaszok is három elemből állnak:

Példa:

HTTP / 1.1 200 OK

  1. Az első rész a használt HTTP verzió.
  2. A második rész a kérés eredményének numerikus kódja.
  3. A harmadik rész a második rész szöveges leírása.

Van még néhány érdekes dolog egy HTTP válaszban:

Szerver fejléce  - információk arról, hogy mely webszerver szoftvert használja.

Set-Cookie fejléc  - kiadja a sütit a böngészőnek.

Üzenet törzse  - gyakran előfordul, hogy egy HTTP válasz tartalmaz egy üzenet törzset.

Content-Length fejléc  - megadja az üzenet törzsének méretét bájtokban.

HTTP módszerek

A leggyakoribb módszerek a GET és a POST. De van néhány más is.

GET  - Ezt a módszert arra használja, hogy adatokat kérjen egy meghatározott erőforrástól, ahol az adatok semmilyen módon nem módosulnak. A GET kérések nem változtatják meg az erőforrás állapotát.

POST  - Ezt a módszert arra használja, hogy adatokat küldjön egy szerverhez erőforrás létrehozásához.

PUT - Ezzel a módszerrel frissíti a szerver meglévő erőforrását a kérelem törzsében található tartalom felhasználásával. Gondoljon erre úgy, hogy valamit "szerkeszt".

HEAD  - Ezt a módszert ugyanúgy használja, mint a GET-et, de azzal a különbséggel, hogy a HEAD módszer visszatérése nem tartalmazhat testet a válaszban. De a bevallás ugyanazokat a fejléceket fogja tartalmazni, mintha a GET-et használták volna. A HEAD módszer segítségével ellenőrizheti, hogy az erőforrás jelen van-e a GET-kérelem benyújtása előtt.

TRACE -  Ezt a módszert diagnosztikai célokra használja. A válasz törzsében a kérelem üzenetének pontos tartalma szerepel.

OPCIÓK  - Ezzel a módszerrel írja le a célerőforrás számára elérhető kommunikációs lehetőségeket (HTTP módszereket).

PATCH -  Ezt a módszert használja az erőforrások részleges módosításainak alkalmazásához.

TÖRLÉS - Ezzel a módszerrel törölheti a megadott erőforrást.

PIHENÉS

A reprezentatív állapotátvitel (REST) ​​egy olyan architektúra-stílus, ahol a kérések és válaszok a rendszererőforrás aktuális állapotának ábrázolását tartalmazzák.

„Rendszeres” mód:

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

REST stílus:

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

Itt többet megtudhat a REST-ről, ha kíváncsi.

HTTP fejlécek

Három fő összetevő alkotja a kérés / válasz struktúrát. Ezek tartalmazzák:

  • Első sor
  • Fejlécek
  • Test / Tartalom

A HTTP-kérések és válaszok első soráról már beszéltünk, és a testfunkciókat is említettük. Most a HTTP fejlécekről fogunk beszélni.

A HTTP fejlécek az első sor után kerülnek felvételre, és kettősponttal elválasztott név: érték párokként vannak meghatározva. A HTTP fejlécek további paraméterek küldésére szolgálnak a kéréssel vagy a válaszsal együtt.

Mint már mondtam, az üzenet törzse tartalmazza a kéréssel együtt elküldendő adatokat, vagy a válasz mellett kapott adatokat.

Különböző típusú fejlécek vannak, amelyek felhasználásuk alapján 4 nagy kategóriába vannak csoportosítva:

  • Általános fejléc  - fejlécek, amelyek mind a kérelmekben, mind a válaszüzenetekben használhatók, és amelyek függetlenek a kicserélt adatoktól.
  • Kérés fejléc  - Ezek a fejlécek meghatározzák a kért adatok paramétereit vagy azokat a paramétereket, amelyek fontos információkat nyújtanak a kérelmet benyújtó kliensről.
  • Válaszfejléc  - Ezek a fejlécek információkat tartalmaznak a beérkező válaszról.
  • Entit fejléc  - Az entitás fejlécek leírják az üzenet törzsét alkotó tartalmat.

HTTP állapotkódok

Az internetet böngészve előfordulhat, hogy "404 hiba: nem található" vagy "500 hiba: a szerver nem válaszol" oldalakkal találkozhat.

Ezek HTTP állapotkódok.

Minden HTTP válaszüzenetnek tartalmaznia kell egy HTTP állapotkódot az első sorában, amely megadja nekünk a kérés eredményét.

Az állapotkódoknak öt csoportja van, amelyek az első számjegy szerint vannak csoportosítva:

  • 1xx - Információs.
  • 2xx - A kérés sikeres volt.
  • 3xx - Az ügyfél átirányításra kerül egy másik erőforrásra.
  • 4xx - A kérés valamilyen hibát tartalmaz.
  • 5xx - A szerver hibát észlelt a kérés teljesítése során.

Itt található a HTTP állapotválasz-kódok teljes listája és azok magyarázata.

HTTPS (Hypertext Transfer Protocol Secure)

A HTTP protokoll biztonságos verziója a HyperText Transfer Protocol Secure (HTTPS). A HTTPS titkosított kommunikációt biztosít a böngésző (kliens) és a webhely (szerver) között.

A HTTPS-ben a kommunikációs protokollt a Transport Layer Security (TLS) vagy a Secure Sockets Layer (SSL) segítségével titkosítják.

A protokollt ezért gyakran nevezik HTTP-nek TLS-en keresztül, vagy HTTP-n keresztül SSL-nek.

A TLS és az SSL protokoll egyaránt aszimmetrikus titkosító rendszert használ. Az aszimmetrikus titkosító rendszerek nyilvános kulcsot (titkosítási kulcs) és privát kulcsot (visszafejtő kulcsokat) használnak az üzenet titkosításához.

Bárki használhatja a nyilvános kulcsot egy üzenet titkosításához. A titkos kulcsok azonban titkosak, és ez azt jelenti, hogy csak a szándékolt vevő tudja dekódolni az üzenetet.

SSL / TLS kézfogás

Amikor HTTPS-kapcsolatot kér egy webhelyhez, a webhely elküldi SSL-tanúsítványát a böngészőbe. Ezt a folyamatot, amelyben a böngésző és a webhely kezdeményezi a kommunikációt, SSL / TLS kézfogásnak hívják.

Az SSL / TLS kézfogás egy sor olyan lépést tartalmaz, amelyek során a böngésző és a webhely validálja egymást, és megkezdi a kommunikációt az SSL / TLS alagúton keresztül.

Mint valószínűleg észrevette, amikor egy megbízható, biztonságos alagutat használnak HTTPS-kapcsolat közben, a zöld lakat ikon megjelenik a böngésző címsorában.

A HTTPS előnyei

A HTTPS fő ​​előnyei:

  • Az ügyféladatok, például a hitelkártyaszámok és egyéb érzékeny információk, titkosítva vannak, és nem lehallgathatók.
  • A látogatók igazolhatják, hogy Ön bejegyzett vállalkozás, és hogy Ön a domain tulajdonosa.
  • Az ügyfelek tudják, hogy nem feltételezik, hogy HTTPS nélküli webhelyeket látogatnak meg, ezért nagyobb valószínűséggel bíznak és teljesítik a HTTPS-t használó webhelyek vásárlásait.

Köszönöm, hogy elolvasta! Nézzen meg további hasonló cikkeket a freeCodeCamp profilomon. És nézzen meg más szórakoztató dolgokat, amelyeket a GitHub oldalamon építek.