get, head (,post) ja cgi -ohjelmat

get, head (,post) ja cgi -ohjelmat, mitä sanoo alan "standardit" eli RFC:t asiasta ?

Pyytäessään tavallista html -sivua, selain saattaa lähettää ensin HEAD -pyynnön:

HEAD http://keskustelu.suomi24.fi/

ja, mikäli vastaus osoittaa, että palvelimella oleva sivu on uudempi kuin selaimen välimuistissa oleva, silloin lähetetään heti perään GET -pyyntö:

GET http://keskustelu.suomi24.fi/

Mutta: entä, jos käyttäjän syöttämä (tai linkin osoittama) URL onkin tällainen:

http://www.malliyritys.fi/cgi-bin/handler/sivu1.html?abc=1&def=2

tai, 1. pyynnön yhteydessä usein tällainen:

http://www.malliyritys.fi/cgi-bin/handler/sivu1.html

(huomaa puuttuvat parametrit jälkimmäisessä).

MISTÄ selain tietää olla lähettämättä ensin HEAD -pyyntöä palvelimelle silloin, kun haettava URL osoittaa CGI -ohjelmaan (tai muuhun vastaavaan skriptiin/web-ohjelmaan) staattisen web -sivun sijaan?

Vai pitäisiköCGI -ohjelman koodaajan varautua myös HEAD -pyyntöön ?

Itse ainakin olen nähnyt esimerkkikoodia, joka testaa, onko pyyntötyyppi GET vai POST, ja osaa käsitellä molempia, mutta jos pyyntötyyppi ei ole kumpikaan näistä tai puuttuu kokonaan, ko.esimerkkikoodi lähettää pyytäjälle virheilmoituksen, todennäköisesti http -standardiin kuuluvalla "malformed" -virhekoodilla.
2139
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

on html-koodia oli se urli sitten parametrien kanssa tai ilman.

Sivun mukana tallennetaan varmaan myös http-headerit jotka sitten kertoo miten välimuistissa olevaa sivua käsitellään ja onko se jo liian vanha "Expired" arvon mukaan.

Nyt kun debuggaan omia sivujani, niin kertaakaan en ole saanut selaimelta vielä kiinni pelkkää HEAD kyselyä.

http speksin mukaan http headereita tulee aina totella ja omasssa sovelluksessa isken aina jokaiseen vastaukseen headerit

Cache-Control=no-cache, no-store, must-revalidate, proxy-revalidate
Pragma=no-cache

Ei tarvi välittää cachesta, kun sivut ei mene cacheen ikinä.

Meta-tageillä yritin ensin, mutta niitä tottelee selaimet aika vaihtelevasti

Äänestä
  • Se olennaisin kysymys oli tämä:

    Vai pitäisikö CGI -ohjelman koodaajan varautua myös HEAD -pyyntöön ja siis osata käsitellä myös sellainen oikein ?

    Tämä kysymys on siis edelleen vastausta vaille.

    Äänestä

Kommentoi aloitusta


koodaaja2 kirjoitti:

get, head (,post) ja cgi -ohjelmat, mitä sanoo alan "standardit" eli RFC:t asiasta ?

Pyytäessään tavallista html -sivua, selain saattaa lähettää ensin HEAD -pyynnön:

HEAD http://keskustelu.suomi24.fi/

ja, mikäli vastaus osoittaa, että palvelimella oleva sivu on uudempi kuin selaimen välimuistissa oleva, silloin lähetetään heti perään GET -pyyntö:

GET http://keskustelu.suomi24.fi/

Mutta: entä, jos käyttäjän syöttämä (tai linkin osoittama) URL onkin tällainen:

http://www.malliyritys.fi/cgi-bin/handler/sivu1.html?abc=1&def=2

tai, 1. pyynnön yhteydessä usein tällainen:

http://www.malliyritys.fi/cgi-bin/handler/sivu1.html

(huomaa puuttuvat parametrit jälkimmäisessä).

MISTÄ selain tietää olla lähettämättä ensin HEAD -pyyntöä palvelimelle silloin, kun haettava URL osoittaa CGI -ohjelmaan (tai muuhun vastaavaan skriptiin/web-ohjelmaan) staattisen web -sivun sijaan?

Vai pitäisiköCGI -ohjelman koodaajan varautua myös HEAD -pyyntöön ?

Itse ainakin olen nähnyt esimerkkikoodia, joka testaa, onko pyyntötyyppi GET vai POST, ja osaa käsitellä molempia, mutta jos pyyntötyyppi ei ole kumpikaan näistä tai puuttuu kokonaan, ko.esimerkkikoodi lähettää pyytäjälle virheilmoituksen, todennäköisesti http -standardiin kuuluvalla "malformed" -virhekoodilla.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu