![]() |
Hur upptäcker jag en HEAD request i PHP?
Jag bygger en sida som endast skall stödja GET requests. Hur gör jag i PHP för att upptäcka om någon gör en HEAD eller en POST?
Någon som vet? |
An associative array of variables passed to the current script via the HTTP POST method.
Det borde gå att köra Kod:
if(isset($_POST)) { |
Varför vill man blockera HEAD requester? Bara en nyfiken fråga.
|
Exempelvis
Kod:
if ($_SERVER['REQUEST_METHOD'] != "GET") die("Sorry, we only accept get requests."); |
Citat:
Citat:
Rätt kontroll vore alltså att kolla if($_SERVER['REQUEST_METHOD'] == 'head'). Det är dock något underligt varför du vill göra en sån kontroll. Ett anrop med HEAD ska hanteras precis på samma sätt ett anrop med GET enligt specen, däremot behöver inte servern skicka ut svarets body, själva html-koden (eller vad det nu kan vara) som renderas i webbläsaren. |
Citat:
Jag har en URL som mäter klick. Och jag har försökt att blockera alla robotar. Men igår såg jag att det i loggarna kom en ny robot som gjorde en "HEAD". Detta gör väl inte normalt människor? Så därför tänkte jag att jag blockar alla "HEAD" requests i framtiden. Låter det rimligt? |
Citat:
Citat:
|
Citat:
|
Citat:
Citat:
|
Citat:
http://www.w3.org/Protocols/rfc2616/...c9.html#sec9.4 Vill du göra sådana antaganden är det upp till dig. Jag hade inte gjort det. |
Vill du inte stödja HEAD, så stöd inte HEAD. Vad sen RFC och dylikt säger borde du egentligen skita i.
Det står i lagen att du enbart får gå över vägen på övergångsställen och i dom fall där det finns, enbart vid grön gubbe. Och hur många följer det? Gör precis som du vill och skit i vad folk säger här. |
Citat:
Har du hört talas om det norge-ordvitsen "Skjut dig själv och skit i andra"? Din kontenta låter ungefär likadan för mig :) |
Citat:
Se på Internet Explorer, Microsoft har ju skitit i RFCn i 10 år. Är där någon som följer RFCn till 100% eller W3C? |
Citat:
Du har förstås rätt: det är fritt fram att strunta i alla standarder, men då får man också räkna med att man får problem med att kommunicera i ett nätverk. |
Citat:
Kör jag telnet till en webserver och skriver in: HEAD /index.php HTTP/1.1 Så för jag inte med content. Utan enbart svar från webservern med HTTP huvud. Alltså, korrekt förfarande är ju: Kod:
If($_SERVER['REQUEST_METHOD'] == 'HEAD') exit; Och det är väl resultatet som är viktigt sen hur man uppnår det är väl upp till var och en. |
Citat:
|
Swan:
Du nämnde att du var orolig för att du inte kunde blockera alla bots. Jag rekommenderar dig att använda http://www.stopforumspam.com/ för att kontrollera IP adress. |
Alla tider är GMT +2. Klockan är nu 23:03. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson