Skirtumas tarp gavimo ir paskelbimo

Gauti prieš paskelbdami

„Gauti“ ir „Skelbti“ yra HTTP METODAI duomenų parametrams iš kliento naršyklės siųsti į serverį. Šie parametrai gali būti formos įvestis, paieškos užklausa iš paieškos skirtuko ir kt. Kai tinklapis turi atsakyti atitinkamai su vartotoju arba net galime jį pasakyti kaip vartotojo interaktyvų tinklalapį, šie HTTP METODAI atlieka gyvybiškai svarbų vaidmenį. vaidmuo tiekti konkretaus vartotojo įvestį į serverį. Bet jums gali kilti klausimas, kodėl mums reikalingi du skirtingi metodai, kad galėtume siųsti įvestį? Norint atsakyti į šį klausimą, labai svarbu suprasti, kaip šie metodai veikia, kad galėtumėte geriau suprasti tikrąjį skirtumą.

Sintaksė:

Pažvelkime į HTTP metodų gavimo ir paskelbimo sintaksę.

(Tai yra „Get“ sintaksė)

(Tai yra „Post“ sintaksė)

Sintaksėje nėra didelio skirtumo, išskyrus žodį „Gauti“ ar „Rašyti“.

Kaip įvestys siunčiamos į serverį?

Įvestis pridedama prie URL po „?“ Metodo „Gauti“ metodu „Post“ jis siunčiamas atskirai kaip pranešimas. Kartais paspaudę klavišą Enter, URL galėjote pamatyti savo paieškos užklausą. Jei ne, tiesiog išbandykite vieną kartą „Google“. Jei tai yra „Gavimo metodas“, paieškos užklausą galite pastebėti po „?“ tame pačiame URL. Tuo pat metu negalime skaityti įvesties, kai naudojame „Post“, nes ji pateikiama atskirai, o ne su URL.

Įvesties tipas:

Kai „Get“ prideda įvestį į URL, jis turėtų būti pateikiamas kaip ASCII simboliai. Tačiau „Post“ gali siųsti dvejetainius duomenis be jokių apribojimų. Todėl „Post“ yra lankstesnis nei įvesties tipas, nes tai leidžia tiek ASCII, tiek dvejetainius duomenis.

Parametrų skaičius:

Gavimo metodas gali siųsti tik ribotus parametrus, palyginti su žinute. Paprastai jis ribojamas skaičiumi, 2K, o kai kuriais atvejais serveriai gali apdoroti iki 64k parametrus. Tačiau „Post“ metodas yra pajėgus nusiųsti net failus į serverį pranešimų forma. Taip, kai lyginame juos abu, galime pasakyti, kad „Post“ geriau siųsti daugiau įvesties parametrų.

Įvesties dydis:

Paprastai maksimalus leidžiamas URL ilgis priklauso nuo mūsų naudojamos naršyklės ir žiniatinklio serverio, kuris apdoroja URL užklausą. Kadangi „Get“ siunčia įvestis kartu su URL, galime atsiųsti ne daugiau kaip 2048 simbolius ir kai kuriais atvejais tai skiriasi. Tačiau įvesties dydžiui nėra jokių apribojimų, kai naudojame „Post“ metodą.

Įvesties matomumas:

Jei būtumėte išbandę „Google“ paiešką, galėjote suprasti, kad „Gauti“ įvestis yra akivaizdžiai matoma kitiems. Taip yra todėl, kad įvestis tiesiog pridedama prie URL, ir visi gali pamatyti URL vietoje. Bet jei buvo naudojamas „Post“ metodas, tada niekas negalėjo nustatyti, ką mes išsiuntėme kaip įvestį. Jei jums nelabai rūpi įvesties matomumas, tiesiog eikite į gavimą. Kitu atveju paspauskite, kad paslėptumėte savo įvestį nuo kitų.

Numatytasis metodas:

Iki šiol jau galėjote suprasti, kaip abu būdai veikia siunčiant įvestis į serverius. Dėl paprastumo naudoti ir perduoti parametrus HTTP numatytasis metodas pasirinktas kaip „Gauti“. Nors „Post“ metodas turi įvairių pranašumų, palyginti su „Gauti“, paprastesnis yra laikomas prioritetu, o laikomas kaip numatytasis. Taigi, kai konkrečiai nenurodote metodo, jis laikomas gavimo užklausa.

Naršyklės istorija:

Kadangi Gavimo metodas siunčia duomenis per URL, jau išsiųsti duomenys išlieka žiniatinklio naršyklių istorijoje. Todėl kiekvienas galėjo pamatyti tai, ką mes išsiuntėme serveriams, ištyrę savo naršyklės istoriją. „Post“ metodas nesukuria tokios galimybės, nes jis niekada naršyklėms neleidžia išsaugoti informacijos. Tiesą sakant, nieko nėra bendro su interneto naršyklėmis, kai duomenys siunčiami naudojant „Post“ metodą, nes viskas siunčiama žinutėmis.

Kuris yra saugus?

Mes analizavome įvairius „Get“ ir „Post“ metodų skirtumus ir atėjo laikas sužinoti, kas yra užtikrintas? Pažvelkime į įvairius saugumo veiksnius, kad nustatytume tuos pačius.

  • Žymėjimas: Gavimo metodas leidžia žymėti, bet skelbti niekada neleidžia. Pažymėtus duomenis vėliau gali pamatyti visi ir tai yra visiškai grėsmė saugumui! Jei jūsų duomenyse yra daug neskelbtinos informacijos, tokios kaip slaptažodžiai, banko sąskaitos informacija ir kt., Tada „Get“ gali visus tuos duomenis paviešinti. Todėl geriau tęsti „Post“, jei tvarkote neskelbtiną informaciją.
  • Talpinimas: Talpyklos atmintyje kaupiama informacija, kad būtų galima ją nuskaityti ateityje, ir tai taupo mūsų laiką. Nors atrodo, kad tai naudingas darbas, yra duomenų nutekėjimo galimybių, kai talpykloje laikoma informacija patenka į netinkamas rankas. Gauti leidžia išsaugoti talpyklą, o pranešimas niekuomet neleidžia kaupti talpykloje! Todėl „Post“ išlieka saugesnis per „Gaukite“.
  • Atnaujinti arba atgal: Kai spustelėjame Atnaujinti arba Atgal piktogramą, tinklalapio URL vėl vykdomas. Tačiau šis pakartotinis vykdymas neįvyksta, kai senesni duomenys yra jūsų sistemos talpyklos atmintyje. Taigi, esant tokiam scenarijui, yra tikimybė, kad jau gautus duomenis iš serverio gausite atnaujinę arba Atgal. Turėtume nustatyti, kada įvyksta šis scenarijus, naudojant „Gauti“ ar „Paskelbti“? Kadangi žinome, kad talpyklos kaupimas vyksta su „Get“, o ne su „Post“, senesnius duomenis nuskaityti galima tik naudojant „Get“. Netgi tai gali nutikti naudojant „Post“, tačiau prieš tai prašant vartotojo reikia leidimo. Taip, mes gauname perspėjimus prieš tokias paieškas „Post“.
  • Įsilaužimas: Kiekvienas, kuris yra techniškai stiprus, gali lengvai nulaužti URL, susijusį su „Gavimo“ metodu, ir gali užfiksuoti mūsų informaciją. Bet tai neįmanoma su „Post“ ir bent jau norint jį nulaužti reikia didelių pastangų! Taigi dažniausiai esame saugūs, kai naudojamas „Post“, o ne „Get“.

Kada naudoti „Gauti ir kada“ naudoti „Post“?

Iš mūsų diskusijos labai aišku, kad „Get“ yra mažiau apsaugota ir nepatartina naudoti, kai tvarkome daug neskelbtinos informacijos. Talpyklos kaupimas ir žiniatinklio naršyklės istorija gali suteikti mūsų informaciją kitiems „Get“ atveju. Tačiau „Post“ yra saugus net tokiomis aplinkybėmis, kai niekada neleidžia kaupti talpykloje, žymėti žymas ir tt. Todėl geriau naudoti „Post“, kai siunčiate daug saugių duomenų..

Pažvelkime į skirtumus lengviau suprantamoje lentelės formoje.

S.Ne

Skirtumai

HTTP užklausos

GAUTI

POST

1 Sintaksė Vartoja raktinį žodį „gauti“. Naudoja raktinį žodį „paskelbti“.
2 Kaip siunčiami įėjimai? Kartu su URL, pridedamu po simbolio „?“. Pranešimų forma.
3 Įvesties tipas ASCII simboliai. ASCII simboliai arba dvejetainiai.
4 Parametrų skaičius Gali valdyti nuo 2 iki 64 000 parametrus, remiantis serveriu. Jokios ribos.
5 Įvesties dydis Leidžia sudaryti iki 2048 simbolių. Jokios ribos.
6 Išsiųstų duomenų matomumas Lieka visiems matomas, nes yra URL vietoje. Negalima žiūrėti, nes ji siunčiama kaip žinutė.
7 Numatytasis HTTP metodas Taip . Ne.
8 Naršyklės istorija Išsiųsti duomenys lieka žiniatinklio naršyklės istorijoje ir vėliau juos gali pamatyti visi. Išsiųsti duomenys nev.er yra žiniatinklio naršyklės istorijoje, todėl vėliau niekas jų nemato.
9 Pažymėjimas Tai leidžia žymėti URL ir, savo ruožtu, atsiųsti duomenis. Su atsiųstais duomenimis nieko bendro neturi, net tinklalapiai yra pažymėti. Kadangi pažymėtuose puslapiuose nėra jokios vartotojo informacijos.
10 Talpinimas Talpykloje laikomi puslapiai saugo vartotojo įvestus duomenis ir leidžia juos nuskaityti ateityje. Talpykloje išsaugoti puslapiai niekada neišsaugo vartotojo įvesties.
11 Atnaujinti arba Atgal Veiksmai „Atnaujinti“ arba „Atgal“ nevykdo užklausos iš naujo, jei senesnės versijos liko talpyklos atmintyje. Taip pat toks nuskaitymas iš talpyklos vyksta be jokio perspėjimo pranešimo vartotojui. Todėl vartotojas gali manyti, kad tai yra naujausias, bet, savo ruožtu, serveryje gali būti kitokių duomenų. Veiksmai „Atnaujinti“ arba „Atgal“ iš talpyklos iškelia duomenis tik tada, kai vartotojui yra išsiųstas įspėjamasis pranešimas. Vartotojas gali jį atšaukti ir netgi gali pakartotinai vykdyti, kad gautų naujausius duomenis iš talpyklos.
12 Įsilaužimas Tai galima padaryti lengvai. Sunku nulaužti.
13 Kada naudoti? Geriausiai tinka siųsti mažiau neskelbtinus duomenis, tokius kaip paieškos užklausos, pokalbių žinutės, socialinės žiniasklaidos turinys, internetiniai tyrimai ir pan., Kur nėra rūpesčio dėl saugumo. Tai labiausiai tinka siųsti daug neskelbtinų duomenų, tokių kaip slaptažodžiai, banko sąskaitos informacija ir kt., Kur saugumas kelia didžiausią susirūpinimą.

Taigi aišku, kad „Get“ ir „Post“ atlieka įvesties siuntimo į serverį užduotis, tačiau jie abu veikia skirtingai. Remdamiesi poreikiu galime naudoti tinkamus HTTP metodus, t. Y. Gauti arba paskelbti.