URL sporočila http hsm. Preusmeritve v HTTP

  • Programiranje
  • Na začetku vsakega semestra se zberejo študenti magistrskega programa Oddelka za MiIT Akademske univerze (Sankt Peterburg) in predstavniki partnerskih podjetij. Predstavniki govorijo o projektih, na katerih bodo delali, študenti pa jih izberejo.

    V enem od projektov, izvedenih v Parallels Labs, je naš študent raziskoval možnost implementacije virtualnega strojnega varnostnega modula (HSM). Kot rezultat je dodal svojo izvedbo VHSM odprtokodnemu projektu OpenVZ. Preberite več o njegovi rešitvi pod rezom.

    Kaj je HSM

    Predstavljajmo si aplikacijo, ki podpisuje podatke, poslane na strežnik, z uporabo zasebnega ključa. Naj bo izguba tega ključa za njegovega lastnika nesprejemljiva. Kako zaščititi tako dragocen ključ pred uhajanjem zaradi oddaljenega vdora v sistem? Pristop HSM predlaga, da ranljivemu delu sistema sploh ne bi smeli omogočiti dostopa do vsebine ključa. HSM je fizična naprava, ki sama shranjuje digitalne ključe ali druge tajne podatke, jih upravlja, generira in z njihovo uporabo tudi izvaja kriptografske operacije. Vse operacije s podatki se izvajajo znotraj HSM, uporabnik pa ima dostop le do rezultatov teh operacij. Notranji pomnilnik naprave je zaščiten pred fizičnim dostopom in vdori. Pri poskusu vdora so vsi občutljivi podatki uničeni.

    Za začetek uporabe HSM se mora uporabnik avtentikirati. Če se preverjanje pristnosti izvede prek odjemalske aplikacije HSM, ki se izvaja v ranljivem delu sistema, je možno, da napadalec prestreže geslo HSM. Prestreženo geslo bo napadalcu omogočilo uporabo HSM, ne da bi pridobil tajne podatke, shranjene v njem. Zato je priporočljivo izvajati avtentikacijo tako, da obidemo ranljivi del sistema, na primer s fizičnim vnosom PIN-a.

    Glavna ovira pri uporabi HSM je njihova visoka cena. Odvisno od razreda naprave se lahko cena razlikuje od 10 $ (žetoni USB, pametne kartice) do 30.000 $+ (naprave s strojnim kriptografskim pospeševanjem, zaščito pred vdori, funkcijami visoke razpoložljivosti). Ponudniki rešitev v oblaku niso prezrli trga HSM. Na primer, Amazon prodaja svoj oblak HSM po povprečni ceni 1373 USD na mesec.

    Ena glavnih značilnosti HSM je izolacija ranljivega dela sistema, ki uporablja kriptografske storitve, od HSM, ki te storitve izvaja. Upoštevajte, da so posamezni primerki (virtualni stroji, vsebniki itd.) v oblaku izolirani drug od drugega, tako da če premaknemo funkcije HSM izven ranljivega primerka v drug primerek, izoliran od zunanjega sveta, bomo precej natančno reproducirali funkcionalnost fizični HSM. Ta pristop imenujemo Virtual HSM (VHSM). Poglejmo, kako ga je implementiral naš študent za projekt OpenVZ.

    Kaj je OpenVZ

    OpenVZ je ena od tehnologij za izvajanje več izoliranih operacijskih sistemov Linux v enem jedru Linuxa. Hkrati pravijo, da vsak OS Linux deluje v ločenem vsebniku. Če poenostavimo, ima jedro Linuxa dejansko vgrajeno funkcionalnost, ki omogoča, da so aplikacije, dodeljene različnim vsebnikom, izolirane, tako da se ne zavedajo obstoja druga druge. Aplikacije ne morejo spremeniti svojega vsebnika. Zaradi boljše izolacije in varnosti je komunikacija med aplikacijami iz različnih vsebnikov, ki uporabljajo IPC, prepovedana. To se običajno izvede z uporabo omrežnih povezav. Kot rezultat vidimo podobnost vsebnikov z "navadnimi" virtualnimi stroji. OpenVZ in tehnologije, ki temeljijo na njem, so priljubljene med ponudniki gostovanja za ustvarjanje VPS. Akademska univerza je že izvedla projekte, povezane z virtualizacijo kontejnerjev. Na primer . Parallels je glavni razvijalec OpenVZ. Povsem naravno je bilo implementirati VHSM posebej za OpenVZ.

    Virtualna HSM arhitektura

    • Client VE je vsebnik OpenVZ, v katerem se izvajajo uporabniške aplikacije, ki zahtevajo kriptografske storitve, kot so šifriranje, podpisovanje itd. Vsebnik je na voljo za oddaljene napade za krajo digitalnih ključev.
    • Navidezno okolje VHSM (VHSM VE) je vsebnik OpenVZ, v katerem se izvaja strežnik VHSM, demon, ki sprejema ukaze iz aplikacij v Client VE in jih izvaja. V VHSM VE se ne izvaja nobena druga aplikacija. VHSM VE je izoliran od običajnih uporabniških vsebnikov z uporabo OpenVZ. Vsebnik nima omrežnih vmesnikov in ni dostopen preko omrežja.
    • Transport je modul jedra Linuxa, zasnovan za prenos sporočil od Client VE do VHSM VE in nazaj.
    • VHSM API je knjižnica, ki implementira del standardnega vmesnika PKCS #11 za HSM, prenaša ukaze aplikacije iz ClientVE v strežnik VHSM z uporabo transporta in vrne rezultat ukaza aplikaciji v ClientVE.
    Razmislite o vsaki komponenti podrobneje.

    Virtualno okolje VHSM

    Strežnik VHSM je odgovoren za avtentikacijo uporabnikov, interakcijo s shrambo tajnih podatkov in izvajanje kriptografskih operacij. Poleg strežnika VHSM VHSM VE vsebuje Secure Storage, bazo podatkov, ki shranjuje pomembne informacije v šifrirani obliki. Vsak uporabnik VHSM ima svoj glavni ključ, s katerim so šifrirani njegovi podatki. Glavni ključ se ustvari iz uporabniškega gesla s funkcijo PBKDF2. Sol, ki mu je bila posredovana kot vnos, je nešifrirana v bazi podatkov. Tako VHSM ne shrani uporabnikovega glavnega ključa v bazo podatkov, uporaba PBKDF2 pa znatno zmanjša hitrost vsiljevanja izvirnega uporabniškega gesla, ko je baza podatkov ukradena.

    Uporabnika v VHSM registrira administrator, katerega vloga je lahko oseba ali program. Ko se uporabnik registrira, VHSM ustvari 256-bitni ključ za preverjanje pristnosti in ga šifrira z glavnim ključem z uporabo AES-GCM. Nato se uporabnik pred uporabo VHSM overi s parom prijava-geslo. Med preverjanjem pristnosti se glavni ključ, oblikovan iz gesla in soli, uporabi za dešifriranje uporabnikovega ključa za preverjanje pristnosti. Uporaba GCM vam omogoča preverjanje pravilnosti glavnega ključa med dešifriranjem. Glavni ključ je pridobljen iz uporabniškega gesla, zato preverjanje njegove pravilnosti omogoča preverjanje samega uporabniškega gesla, posredovanega med avtentikacijo. Po uspešni avtentikaciji uporabniku postanejo na voljo kriptografske storitve, ki uporabljajo digitalne ključe uporabnika, shranjene v VHSM.

    VHSM zahteva eksplicitno izbiro vsebnikov, iz katerih lahko določen uporabnik upravlja VHSM. Informacije o vsebniku, iz katerega je prejet uporabniški ukaz, zagotavlja OpenVZ.

    VHSM API

    To je knjižnica C, ki se nahaja v uporabniških vsebnikih in implementira del standardnega vmesnika PKCS#11 za HSM, ki omogoča upravljanje ključev, podatkov, sej, digitalnih podpisov, šifriranja itd. Oglejmo si konkreten primer uporabe API-ja VHSM:
    1. Aplikacija v vsebniku po meri mora podpisati sporočilo, ki ga pošlje.
    2. S pomočjo API-ja VHSM aplikacija generira par javno-zasebnih ključev, prejme ID zasebnega ključa in javni ključ.
    3. Aplikacija posreduje sporočilo API-ju VHSM za podpisovanje z zasebnim ključem z zahtevanim ID-jem. VHSM API vrne podpisano sporočilo.
    4. Podpisano sporočilo in javni ključ sta poslana prejemniku sporočila. V tem primeru zasebni ključ ni na voljo vsebniku odjemalca.
    Odjemalski del projekta je implementiral tudi motor OpenSSL in modul PAM, kar vam omogoča delo z VHSM v obstoječih aplikacijah, ki uporabljajo OpenSSL in PAM. Vendar je ta del projekta slabo razvit in je bolj dokaz koncepta.

    Prevoz VHSM

    Kot je navedeno zgoraj, aplikacije, ki se izvajajo v različnih vsebnikih, ne morejo komunicirati med seboj z uporabo mehanizmov Linux IPC. Zato je bil za prenos sporočil od odjemalcev do strežnika in nazaj implementiran modul jedra Linuxa, ki ga je mogoče naložiti. Modul poganja strežnik Netlink v jedru, nanj pa se povezujejo odjemalci VHSM in strežnik VHSM. Strežnik Netlink je odgovoren za prenos sporočil od vira (odjemalec VHSM) do cilja (strežnik VHSM) in nazaj. Skupaj s sporočili je pripet ID vsebnika vira sporočila, tako da lahko na primer strežnik zavrne zahteve iz vsebnikov, iz katerih je določenemu uporabniku prepovedana uporaba VHSM.

    Zaključek

    Glavni namen izdelave VHSM je bil odpraviti možnost kraje tajnih ključev iz pomnilnika uporabniških aplikacij, ki se izvajajo v uporabniškem vsebniku. Ta cilj je bil dosežen, ker tajni podatki so dostopni le v izoliranem vsebniku (VHSM VE). Izolacijo izvaja OpenVZ.

    Uhajanje baze podatkov iz VHSM VE ne bo povzročilo takojšnje izgube tajnih podatkov, ker shranjeni so v šifrirani obliki. Šifrirni ključ ni shranjen v podatkovni bazi, ampak se ustvari iz uporabnikovega gesla, posredovanega med avtentikacijo.
    Kot vsaka tehnologija informacijske varnosti je tudi predstavljena rešitev dodatna ovira za napadalca in ne zagotavlja popolne zaščite informacij.

    V angleščini pomeni Uniform Resource Locator, kar v ruščini pomeni "enoten iskalnik virov". V ruščini se ta okrajšava običajno izgovori kot "u-er-el", "yu-ar-el" ali preprosto "url". Poskusimo podrobneje razumeti, kaj je URL. Vsak dokument (spletna stran) na internetu ima določeno lokacijo, ki jo je mogoče natančno določiti. Z uporabo URL-ja je navedena točna pot do določene spletne strani. Tako kot določite pot do katere koli datoteke v vašem računalniku, je URL zgrajen v skladu z določenim vzorcem, ki običajno izgleda nekako takole:

    http://name.ru/papka/document.html

    Kjer http - označuje vrsto protokola, prek katerega se prenašajo podatki, name.ru - pomeni ime domene spletnega mesta, papka je mapa, document.html pa določena stran, na katero ta URL vodi.

    Ker je naš URL http://name.ru/papka/document.html izmišljen, naveden le kot primer in zato ne vodi do nobene spletne strani, bomo, če ga bomo poskušali klikniti, preusmerjen na stran z informacijami o napaki. Morda bo videti drugače, vendar bomo zagotovo videli napis "404 ni bilo mogoče najti". »Not found« v prevodu pomeni »ni najden«, pojav strani 404 pa pomeni, da je bil URL naslov spletne strani vnesen nepopolno, nepravilno (z napako ali tipkarsko napako) ali pa se zahtevana stran ne nahaja več na ta naslov, ker je bil izbrisan ali preimenovan.

    Napaka 404 se pogosto pojavi, ko kliknete povezavo, ki jo najdete na drugi strani in je povezava zastarela. Avtor spletnega mesta bi lahko premaknil dokument, ki smo ga potrebovali, ga preimenoval ali izbrisal. Kaj storiti, če se med prehodom prikaže stran 404? Najprej preverite, ali je URL pravilen, če ga poznamo. Popravite morebitne napake ali tipkarske napake in poskusite znova. Če pride do napake 404, ko sledite povezavi do neznanega vira, poskusite iti na glavno stran in uporabiti iskanje po spletnem mestu - možno je, da bodo potrebne informacije še vedno najdene.

    Mimogrede, številni razvijalci spletnih strani skrbijo, da stran 404 na njihovem spletnem mestu ni videti strašljivo brezupno. Tu je postavljeno šaljivo besedilo s smešno sliko, ki razveseli izgubljenega uporabnika, pa tudi povezave do glavnega spletnega mesta, iskalne vrstice ali zemljevida spletnega mesta. Če je stran 404 videti neprijazna in na njej ni povezav, ki bi jim sledile, lahko poskusite ročno skrajšati URL in pustite samo ime spletnega mesta – v našem primeru bo to http://name.ru/ in tako poskusite pridobiti na glavno stran spletnega mesta, od koder se lahko pomaknete na stran, ki jo iščete.

    URL(URL, iz angleškega Uniform Resource Locator) - indeks umestitve spletnega mesta na internetu. URL vsebuje ime domene in pot do strani, vključno z imenom datoteke te strani.

    Tim Berners-Lee (član Evropskega sveta za jedrsko vojno v Ženevi) je leta 1990 izumil URL, ki je bil takrat preprosto naslov za shranjevanje datotek v sistemu.

    URL strani ima poleg velikih prednosti (razpoložljivost internetne navigacije) tudi pomanjkljivost - deluje le z latiničnimi črkami, številkami in nekaterimi simboli. Če morate uporabiti, na primer, cirilico, potem morate URL ponovno kodirati na poseben način..ru/wiki/%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0 %BA%D0%BE %D0%B5-url/. Takšno kodiranje poteka v dveh korakih: najprej se vsak znak pretvori v zaporedje dveh bajtov, nato pa se vsak bajt prepiše v šestnajstiško.

    Koliko URL spletnega mesta pomeni pri SEO?

    Iskalniki upoštevajo pojavljanje ključnih fraz v URL-jih. Največji vpliv imajo pojavitve v naslovu domene in poddomen, manjšo, a še vedno zelo pomembno vlogo imajo pojavitve v poti do strani in ime datoteke strani. V zvezi s tem se na internetu aktivno razvija vrsta zaslužka, imenovana cybersquatting. Njegovo bistvo je registracija domenskih imen po tržni vrednosti z namenom nadaljnje prodaje po napihnjeni ceni.

    HTTP je protokol za prenos hiperteksta med porazdeljenimi sistemi. Pravzaprav je http temeljni element sodobnega spleta. Kot samospoštljivi spletni razvijalci bi morali o tem vedeti čim več.

    Poglejmo ta protokol skozi optiko našega poklica. V prvem delu bomo preučili osnove in pogledali zahteve/odgovore. V naslednjem članku si bomo ogledali podrobnejše funkcije, kot so predpomnjenje, obdelava povezave in preverjanje pristnosti.

    Tudi v tem članku se bom v glavnem skliceval na standard RFC 2616: Protokol za prenos hiperteksta -- HTTP/1.1.

    Osnove HTTP

    HTTP omogoča komunikacijo med več gostitelji in odjemalci ter podpira vrsto omrežnih nastavitev.

    V bistvu se za komunikacijo uporablja TCP/IP, vendar to ni edina možna možnost. TCP/IP privzeto uporablja vrata 80, vendar je mogoče uporabiti tudi druga.

    Komunikacija med gostiteljem in odjemalcem poteka v dveh fazah: zahteva in odgovor. Odjemalec generira zahtevo HTTP, v odgovor na katero strežnik posreduje odgovor (sporočilo). Malo kasneje si bomo to shemo dela podrobneje ogledali.

    Trenutna različica protokola HTTP je 1.1, v kateri je uvedenih nekaj novih funkcij. Po mojem mnenju so najpomembnejši med njimi: podpora za stalno odprto povezavo, nov mehanizem prenosa podatkov chunked transfer encoding, nove glave za predpomnjenje. Nekaj ​​od tega si bomo ogledali v drugem delu tega članka.

    URL

    Jedro spletne komunikacije je zahteva, ki je poslana prek Uniform Resource Locator (URL). Prepričan sem, da že veste, kaj je URL, vendar sem se zaradi popolnosti odločil povedati nekaj besed. Struktura URL-ja je zelo preprosta in je sestavljena iz naslednjih komponent:

    Protokol je lahko http za običajne povezave ali https za varnejšo izmenjavo podatkov. Privzeta vrata so 80. Temu sledita pot do vira na strežniku in veriga parametrov.

    Metode

    Z uporabo URL-ja določimo točno ime gostitelja, s katerim želimo komunicirati, toda katero dejanje moramo izvesti, lahko sporočimo samo z metodo HTTP. Seveda obstaja več vrst ukrepov, ki jih lahko izvedemo. HTTP implementira tiste najbolj potrebne, primerne za potrebe večine aplikacij.

    Obstoječe metode:

    DOBITI: dostop do obstoječega vira. URL navaja vse potrebne informacije, da lahko strežnik najde in vrne zahtevani vir kot odgovor.

    OBJAVI: Uporablja se za ustvarjanje novega vira. Zahteva POST običajno vsebuje vse potrebne informacije za ustvarjanje novega vira.

    POSTAVITE: Posodobite trenutni vir. Zahteva PUT vsebuje podatke, ki jih je treba posodobiti.

    IZBRIŠI: Uporablja se za brisanje obstoječega vira.

    Te metode so najbolj priljubljene in jih najpogosteje uporabljajo različna orodja in ogrodja. V nekaterih primerih se zahtevi PUT in DELETE pošljejo s pošiljanjem POST, katerega vsebina označuje dejanje, ki ga je treba izvesti na viru: ustvarjanje, posodobitev ali brisanje.

    HTTP podpira tudi druge metode:

    GLAVA: Podobno kot GET. Razlika je v tem, da se pri tej vrsti zahteve ne prenese sporočilo. Strežnik prejme samo glave. Uporablja se na primer za ugotavljanje, ali je bil vir spremenjen.

    TRACE: med prenosom gre zahteva skozi številne dostopne točke in proxy strežnike, od katerih vsak vnese svoje podatke: IP, DNS. S to metodo si lahko ogledate vse vmesne informacije.

    OPCIJE: Uporablja se za določanje zmogljivosti strežnika, nastavitev in konfiguracije za določen vir.

    Statusne kode

    Kot odgovor na zahtevo odjemalca strežnik pošlje odgovor, ki vsebuje tudi statusno kodo. Ta koda ima poseben pomen, da lahko stranka jasneje razume, kako si razlaga odgovor:

    1xx: Informacijska sporočila

    Niz teh kod je bil predstavljen v HTTP/1.1. Strežnik lahko pošlje zahtevo v obliki: Expect: 100-continue, kar pomeni, da odjemalec še vedno pošilja preostanek zahteve. Odjemalci, ki uporabljajo HTTP/1.0, prezrejo te glave.

    2xx: sporočila o uspehu

    Če je stranka prejela kodo iz serije 2xx, je bila zahteva uspešno poslana. Najpogostejša možnost je 200 OK. Z zahtevo GET strežnik pošlje odgovor v telesu sporočila. Možni so tudi drugi odgovori:

    • 202 Sprejeto: Zahteva je sprejeta, vendar morda ne vsebuje vira v odgovoru. To je uporabno za asinhrone zahteve na strani strežnika. Strežnik določi, ali naj pošlje vir ali ne.
    • 204 Brez vsebine: V telesu odgovora ni sporočila.
    • 205 Ponastavi vsebino: Strežniku naroči, naj ponastavi predstavitev dokumenta.
    • 206 Delna vsebina: Odgovor vsebuje le del vsebine. Dodatne glave določajo skupno dolžino vsebine in drugih informacij.

    3xx: preusmeritev

    Nekakšno sporočilo stranki o potrebi po še enem dejanju. Najpogostejši primer uporabe je preusmeritev odjemalca na drug naslov.

    • 301 Preseljen za stalno: Vir je zdaj mogoče najti na drugem URL-ju.
    • 303 Glej Drugo: Vir je začasno mogoče najti na drugem URL-ju. Glava Location vsebuje začasni URL.
    • 304 Ni spremenjeno: Strežnik ugotovi, da vir ni bil spremenjen in mora odjemalec uporabiti predpomnjeno različico odgovora. Za preverjanje istovetnosti informacij se uporablja ETag (Entity Tag hash);

    4xx: Napake odjemalca

    Ta razred sporočil uporablja strežnik, če se odloči, da je bila zahteva poslana po pomoti. Najpogostejša koda je 404 Ni najdeno. To pomeni, da vir ni bil najden na strežniku. Druge možne kode:

    • 400 Slaba zahteva: Vprašanje je bilo napačno oblikovano.
    • 401 Nepooblaščeno: Za zahtevo je potrebna avtentikacija. Informacije se prenašajo prek glave avtorizacije.
    • 403 Prepovedano: Strežnik ni dovolil dostopa do vira.
    • 405 Metoda ni dovoljena: Za dostop do vira je bila uporabljena neveljavna metoda HTTP.
    • 409 Konflikt: strežnik ne more v celoti obdelati zahteve, ker poskuša spremeniti novejšo različico vira. To se pogosto zgodi pri zahtevah PUT.

    5xx: Napake strežnika

    Niz kod, ki se uporabljajo za odkrivanje napake strežnika pri obdelavi zahteve. Najpogostejši: 500 Notranja napaka strežnika. Druge možnosti:

    • 501 Ni implementirano: Strežnik ne podpira zahtevane funkcionalnosti.
    • 503 Storitev ni na voljo: To se lahko zgodi, če ima strežnik napako ali je preobremenjen. Običajno se v tem primeru strežnik ne odzove in čas za odgovor poteče.

    Formati sporočil zahtev/odgovorov

    Na naslednji sliki lahko vidite shematski postopek pošiljanja zahteve s strani odjemalca, obdelavo in pošiljanje odgovora s strani strežnika.

    Poglejmo strukturo sporočila, poslanega prek HTTP:

    Sporočilo = *() CRLF [ ] = Zahtevna vrstica | Statusna vrstica = Ime polja ":" Vrednost polja

    Med glavo in telesom sporočila mora biti prazna vrstica. Naslovov je lahko več:

    Telo odgovora lahko vsebuje vse ali del informacij, če je omogočena ustrezna funkcija (prenos-kodiranje: razrezano). HTTP/1.1 podpira tudi glavo Transfer-Encoding.

    Splošni naslovi

    Tu je več vrst glav, ki se uporabljajo v zahtevah in odgovorih:

    General-header = Cache-Control | Povezava | Datum | Pragma | Napovednik | Prenos-kodiranje | Nadgradnja | Prek | Opozorilo

    Nekatere stvari smo v tem članku že obravnavali, o nekaterih bomo podrobneje razpravljali v drugem delu.

    Glava via se uporablja v zahtevi TRACE in jo posodabljajo vsi proxy strežniki.

    Glava Pragma se uporablja za seznam glav po meri. Na primer, Pragma: brez predpomnilnika je enako kot Cache-Control: brez predpomnilnika. O tem bomo več govorili v drugem delu.

    Glava Datum se uporablja za shranjevanje datuma in časa zahteve/odgovora.

    Glava Nadgradnja se uporablja za spreminjanje protokola.

    Transfer-Encoding je namenjen razdelitvi odgovora na več kosov z uporabo Transfer-Encoding: chunked. To je nova funkcija v HTTP/1.1.

    Glave entitet

    Glave entitet posredujejo meta informacije o vsebini:

    Glava-entitete = Dovoli | Kodiranje vsebine | Jezik vsebine | Dolžina vsebine | Vsebina-Lokacija | Vsebina-MD5 | Razpon vsebine | Vrsta vsebine | Poteče | Nazadnje spremenjeno

    Vse glave s predpono Content- zagotavljajo informacije o strukturi, kodiranju in velikosti telesa sporočila.

    Glava Expires vsebuje čas poteka in datum entitete. Vrednost »nikoli ne poteče« pomeni čas + 1 kodo od trenutnega trenutka. Last-Modified vsebuje čas in datum, ko je bila entiteta nazadnje spremenjena.

    Z uporabo teh glav lahko podate informacije, potrebne za vaše naloge.

    Oblika zahteve

    Zahteva izgleda nekako takole:

    Zahtevna vrstica = metoda SP URI SP HTTP-različica CRLF metoda = "MOŽNOSTI" | "GLAVA" | "DOBITI" | "POST" | "POSTAVI" | "IZBRIŠI" | "SLED"

    SP je ločilo med žetoni. Različica HTTP je navedena v HTTP-Version. Dejanska zahteva izgleda takole:

    GET /articles/http-basics HTTP/1.1 Host: www.articles.com Povezava: keep-alive Cache-Control: no-cache Pragma: no-cache Accept: text/html,application/xhtml+xml,application/xml; q=0,9,*/*;q=0,8

    Seznam možnih glav zahtev:

    Glava zahteve = Sprejmi | Accept-Charset | Accept-Encoding | Accept-Jezik | Pooblastilo | Pričakujte | Od | Gostitelj | Če se ujema | If-Modified-Since | Če se ne ujema | Če-razpon | If-Unmodified-Since | Max-Forwards | Proxy-Avtorizacija | Razpon | Napotitelj | TE | Uporabniški agent

    Glava Accept določa podprte vrste mime, jezik in kodiranje znakov. Glave From, Host, Referer in User-Agent vsebujejo informacije o odjemalcu. Predpone if- so namenjene ustvarjanju pogojev. Če pogoj ni izpolnjen, se pojavi napaka 304 Not Modified.

    Oblika odgovora

    Format odgovora se razlikuje le po statusu in številu glav. Stanje izgleda takole:

    Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF

    • Različica HTTP
    • Statusna koda
    • Človeku berljivo sporočilo o stanju

    Normalno stanje izgleda nekako takole:

    HTTP/1.1 200 OK

    Glave odgovorov so lahko naslednje:

    Glava-odgovora = Razponi sprejemanja | starost | ETag | Lokacija | Proxy-Authenticate | Poskusi znova | Strežnik | Spreminjajte | WWW-preverjanje pristnosti

    • Starost je čas v sekundah, ko je bilo sporočilo ustvarjeno na strežniku.
    • Entitete ETag MD5 za preverjanje sprememb in modifikacij odgovora.
    • Lokacija se uporablja za preusmeritev in vsebuje nov URL.
    • Strežnik določa strežnik, kjer je bil ustvarjen odgovor.

    Mislim, da bo dovolj teorije za danes. Zdaj pa si poglejmo orodja, ki jih lahko uporabimo za spremljanje sporočil HTTP.

    Orodja za zaznavanje HTTP prometa

    Obstaja veliko orodij za spremljanje prometa HTTP. Tukaj je nekaj izmed njih:

    Najpogosteje uporabljena so orodja za razvijalce za Chrome:

    Če govorimo o razhroščevalniku, lahko uporabite Fiddler:

    Za spremljanje prometa HTTP boste potrebovali curl, tcpdump in tshark.

    Knjižnice za delo s HTTP - jQuery AJAX

    Ker je jQuery tako priljubljen, ima tudi orodja za obdelavo odzivov HTTP za zahteve AJAX. Informacije o jQuery.ajax(settings) najdete na uradni spletni strani.

    S posredovanjem objekta nastavitev in uporabo funkcije za povratni klic beforeSend lahko nastavimo glave zahtev z uporabo metode setRequestHeader().

    $.ajax(( url: "http://www.articles.com/latest", tip: "GET", beforeSend: funkcija (jqXHR) ( jqXHR.setRequestHeader("Accepts-Language", "en-US,en "); )))

    Če želite obdelati status zahteve, lahko to storite takole:

    $.ajax(( statusCode: ( 404: function() ( alert("stran ni najdena"); ) ) ));

    Spodnja črta

    Tukaj je, ogled osnov protokola HTTP. Drugi del bo vseboval še več zanimivosti in primerov.

    Skoraj vsak uporabnik, ki dela na internetu, naleti na sklicevanja na URL, URL-ji, povabila za obisk povezave in uporabo povezave. Za tiste, ki teh konceptov ne poznate ali so novi v njih, sem se odločil napisati gradivo, v katerem vam bom povedal, kaj je URL, kako uporabiti URL, na katere dele je razdeljen URL, in razložil bom tudi, kako najti prava povezava na internetu.

    URL- to je naslov, ki označuje pot do internetnega vira, na katerem se nahajajo različne vrste datotek (dokumenti, slike, video posnetki, zvok itd.). Okrajšava URL pomeni "Uniform Resource Locator", v ruščini se običajno izgovori kot "url", "yu-ar-el", "u-er-el", pogosto se uporablja preprosto beseda "povezava".

    Spomnim se, da sem pred časom iskal, kaj je naslov URL, da bi svojemu bratu kompetentno povedal vse podrobnosti koncepta. In sam sem se začel zanimati, ko se je pojavil ta izraz.

    Avtor pojma URL je Britanec Tim Bernes-Lee, sam izum (1990) pa je pomenil kvalitativni preskok v razvoju internetnih tehnologij. Zdaj je URL identifikator naslovov skoraj vseh virov v omrežju, sam izraz URL pa postopoma nadomešča obsežnejši izraz URI (Uniform Resource Identifier).

    URL-ji objav v družabnih medijih


    Na katere dele je razdeljen URL?

    Klasičen primer URL-ja izgleda nekako takole:

    http://naslov_mesta/mapa/stran.html

    Kot lahko vidite, je URL razdeljen na več delov:

    Prvi del (http://) določa protokol, ki se uporablja. Preprosto povedano, govori o metodi, ki bo uporabljena za dostop do želenega vira.

    Protokol »HTTP«, uporabljen v tem URL-ju, pomeni »HyperText Transfer Protocol« in se uporablja v veliki večini primerov. Lahko pa najdete URL-je z uporabo drugih protokolov, na primer FTP (File Transfer Protocol), HTTPS (HyperText Transfer Protocol Secure – varna, šifrirana različica HTTP), mailto (e-poštni naslov) in druge.

    Skupaj obstaja več deset vrst protokolov URL: ftp, http, rtmp, rtsp, https, gopher, mailto, news, nntp, smb, prospero, telnet, wais, xmpp, file, data itd., vendar običajno več uporabljajo se osnovni, ki sem jih navedel malo višje.

    Drugi del(Naslov spletne strani) je ime domene. Tehnično je to samo vrsta simbolov, črk ali kombinacija besed, ki ljudem omogoča, da si zlahka zapomnijo naslov svoje priljubljene strani. V nasprotnem primeru bi bile povezave do virov videti kot http://192.168.384..

    Tretji del (mapa/stran.html) običajno kaže na neko stran z viri, do katere želi uporabnik dostopati. Lahko je preprosto v obliki imena ali v obliki poti do določene datoteke skozi nabor map, slednje so običajno ločene s poševnico (/). Končnice internetnih strani so lahko različne - php, htm, html, shtml, asp in številne druge.

    Te razlage si lahko vizualno ogledate v videu:

    Okrajšave, uporabljene pred imenom domene www(World Wide Web) ni obvezna, lahko uporabite naslov strani brez nje, stran se bo zagotovo odprla.

    Značilnosti uporabe naslova URL

    Če URL, ki ga je navedel uporabnik, ni pravilen, nam bo sistem prikazal napako 404 z opombo »Stran ni najdena!« To pomeni, da je uporabnik vnesel ali napačen ali zastarel naslov strani, zato je pri vnosu naslova potrebna natančnost, točnost in pozornost. Pri vnašanju URL-ja priporočam uporabo , kopiranje naslova strani z uporabo funkcij »copy/paste«. Poskusite lahko tudi vnesti skrajšan URL v obliki samo glavnega imena spletnega mesta (brez map in strani), na glavni strani spletnega mesta pa poiščite povezavo do strani, ki jo potrebujemo.

    Slabosti URL-jev

    Potem ko smo opisali, da je to povezava URL, si poglejmo vse slabosti URL-ja. URL-ji imajo poleg prednosti enostavnega krmarjenja po internetu tudi svoje slabosti. To deluje samo s številkami, latiničnimi črkami in nekaterimi simboli, cirilico je običajno treba ponovno kodirati (URL Encoding) v dveh stopnjah, v prvi od katerih se vsak cirilični znak pretvori v dva bajta, nato pa se vsak bajt prepiše z uporabo šestnajstiški sistem.

    Poleg tega je priporočljiva uporaba pretežno malih črk v naslovu (nekateri sistemi Unix bodo njihove različice z velikimi črkami zaznali kot različne znake, kar lahko povzroči napako pri odpiranju strani), prepovedana pa je tudi uporaba presledkov v URL naslovih.

    Kako najti naslov URL. Zaznamki.

    Za iskanje želenega naslova URL lahko uporabite iskalnike, v katere morate vnesti ključne besede iskanja. Na primer, če potrebujete film, vnesite njegovo ime ali imena igralcev, če glasbo - imena izvajalcev in ime skladbe. S klikom na “Išči” boste dobili veliko spletnih mest z URL naslovi, s klikom na katere lahko najdete želeni rezultat.

    URL strani, na kateri se trenutno nahajate, se nahaja v naslovni vrstici vašega brskalnika na vrhu.

    Če si želite zapomniti URL strani, ki jo potrebujete, uporabite vrstico z zaznamki brskalnika. Na primer, v priljubljenem brskalniku Mozilla Firefox se ikona zaznamkov v obliki zvezdice nahaja zgoraj desno na ravni naslovne vrstice. S klikom nanj boste lahko vnesli ime svojega zaznamka in tudi mapo, kamor želite shraniti zaznamke (ponavadi uporabljam posebno ploščo z zaznamki, ki omogoča dostop do katerega koli od njih z enim klikom).

    Zaključek

    Uporaba URL-jev je zelo olajšala brskanje po internetu, saj je mnogim uporabnikom omogočila enostaven in hiter dostop do spletnih mest, ki jih potrebujejo. Če imate po branju članka "Kaj je URL naslov?", jih napišite v komentarjih k članku.

    Vse, kar je danes potrebno, je vnesti ime spletnega mesta in njegovo razširitev v naslovno vrstico, po kateri uporabnik dobi skoraj takojšen dostop do vira. In vse to, ne da bi si bilo treba zapomniti precej zapleten niz trimestnih števil, vse se naredi enostavno, hitro, učinkovito - na splošno, kar je potrebno, kajne.

    V stiku z



    Deliti