Perusteet haltuun

HTTP-otsakkeet

Helppo
15 min

HTTP-otsakkeet ovat osa sekä selaimen lähettämää HTTP-viestiä sekä verkkosivun palauttamaan vastausta ja sisältävät lisätietoa sekä ohjeita.

HTTP-kyselyssä otsakkeet voivat kertoa esimerkiksi verkkosivulle, minkälaiselta laitteelta kysely on tulossa, jotta verkkosivu voi räätälöidä vastauksen laitteelle sopivaksi. Otsakkeita käytetään myös esimerkiksi autentikointiin ja kirjautumistilan ylläpitoon, sekä moniin muihin käyttötarkoituksiin. Hyviä esimerkkejä ovat Content-Type ja Content-Length -otsakkeet, joilla kerrotaan missä muodossa ja minkä kokoinen selaimen lähettämä tieto on.

HTTP-vastauksissa otsakkeet ajavat saman asian kuin kyselyissä, eli näiden avulla verkkosivu pystyy antamaan lisätietoa palauttamastaan tiedosta, sekä antamaan ohjeita selaimelle, miten tämän kuuluisi käyttäytyä.

Alla olevassa HTTP-pyynnössä, maalatut kentät tulkitaan HTTP-otsakkeiksi. HTTP-otsakkeiden jälkeen tulee itse data, jonka selain lähettää verkkosivulle.

Alla olevassa HTTP-vastauksessa, maalatut kentät tulkitaan HTTP-otsakkeiksi. HTTP-otsakkeiden jälkeen tulee verkkosivun palauttama HTTP-runko (body).


Yleisiä HTTP-pyynnöissä olevia otsakkeita

  • Host
    • Host-otsake vaaditaan jokaisessa HTTP/1.1-protokollan viestissä. Host-otsake määrittää pyynnön kohteen ja portin. On hyvä kuitenkin muistaa, että tämä ei määrittele minne viesti lähetetään ja tätä on mahdollista muokata sekä hyväksikäyttää tietyissä haavoittuvuuksissa.
  • Cookie
    • Cookie-otsakkeen avulla selain sisällyttää evästeet HTTP-pyyntöihin, joilla voidaan ylläpitää käyttäjän ja sovelluksen välistä tilaa. Evästeitä voi käyttää esimerkiksi käyttäjän istunnon ylläpitämiseen, jolloin kirjautumisen yhteydessä, sovellus asettaa selaimeen haluamansa evästeet Set-Cookie-otsakkeella.
  • Content-Length
    • Content-Length-otsakkeella selain kertoo sovellukselle, minkä kokoinen HTTP-pyynnön sisältämä HTTP-runko (body) on. Tämä on vaadittu otsake HTTP/1.1-protokollassa, mutta ei uudemmassa HTTP/2-protokollassa.
  • Content-Type
    • Content-Type-otsaketta käytetään HTTP-pyynnön sisältämän rungon formaatin indikoimiseen. HTTP-viestien sisältämä data voi olla useassa eri formaatissa kuten XML, JSON tai kuva.
  • Referer
    • Referer-otsake sisältää osittaisen tai kokonaisen osoitteen, mistä URL-osoitteesta viesti lähetetään. Otsake näkyy HTTP-pyynnöissä esimerkiksi, kun käyttäjä navigoi linkkiin verkkosivulla. Otsakkeesta on koitunut sekä tietoturva- että tietosuojaongelmia, josta syystä tämän käyttöä on rajoitettu selaimessa ja tätä on mahdollista kontrolloida sovelluksen toimesta.
  • User-Agent
    • User-Agent-otsake mahdollistaa HTTP-pyynnön suorittaman sovelluksen, käyttöjärjestelmän ja/tai version päättelemisen. Tämän avulla verkkosivut voivat esimerkiksi päätellä, että onko käyttäjä puhelimella vai tietokoneella.


Yleisiä HTTP-vastauksissa olevia otsakkeita

  • Set-Cookie
    • Set-Cookie-otsakkeella sovellus kykenee tallentamaan selaimeen evästeitä, jotka selain lähettää tulevissa HTTP-pyynnöissä Cookie-otsakkeessa. Kyseinen otsake on tietoturvan kannalta kriittinen, joten evästeitä on mahdollista kontrolloida useilla eri lisäsuojilla, joilla evästeitä yritetään suojella.
  • Location
    • Location-otsaketta käytetään yleisesti uudelleenohjauksissa, joissa sovellus kertoo selaimelle, mihin osoitteeseen selaimen täytyy siirtyä.
  • Cache-Control
    • Cache-Control-otsakkeella sovellus pystyy hallitsemaan selaimen välimuistiin päätyvää tietoa. Oletusarvoisesti, selaimet tallentavat kaiken näkemänsä välimuistiin, joka sijaitsee tietokoneen kovalevyllä. Tällä on myös tietoturvan kannalta merkitys, sillä on tärkeää estää sensitiivisen tiedon tallentuminen tietokoneelle, käyttäjän tietämättä.
  • Content-Length
    • Content-Length-otsakkeella sovellus kertoo selaimelle, minkä kokoinen HTTP-vastauksen sisältämä HTTP-runko on. Tämä on vaadittu otsake HTTP/1.1-protokollassa, mutta ei uudemmassa HTTP/2-protokollassa.
  • Content-Type
    • Content-Type-otsaketta käytetään HTTP-vastauksen sisältämän rungon formaatin indikoimiseen. HTTP-viestien sisältämä data voi olla useassa eri formaatissa kuten XML, JSON, kuvana tai HTML-koodina.

HTTP-otsakkeet

Käynnistä tehtävä ja suorita verkkosivuun HTTP-pyyntö, jossa:

HTTP-metodi on OPTIONS ja HTTP-otsakkeet sisältävät

  • Hakatemia: 1
  • Cookie: keksi on maukas

Tehtävät

Flag

Löydä lippu (flag) labraympäristöstä ja syötä se alle.

hakatemia pro

Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.

Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.