Folgende Best-Practices haben sich unabhängig der Programmiersprache des Clients bei der Entwicklung eigener Zugriffsbibliotheken bewährt:
Accept-Encoding
-Header ein komprimiertes Ergebnis vom webservice_SmartGateReferer
In einer Webanwendung ist dies in der Regel die von Kunden aufgerufene URL inkl. Parameter die zum agora-Methodenaufruf geführt hat. User-Agent
Versionshinweise der verwendeten Bibliothek(en), zum Beispiel curl/7.19.7 NSS/3.13.1.0 zlib/1.2.3
. Dies zeigt insbesondere die auch die Versionsinfos zur ssl- und zlib-Bibliothek an.X-Track-
-Header. Folgende Header empfehlen wir:X-Track-Server-Name
Name des Servers von dem die Anfrage gesendet wurde (i.d.R. ein virtueller Host).X-Track-Client-User-Agent
User-Agent des Clients der die agora-Methode ausgelöst hat. Dient im wesentlichen des Trackings von Bots.Hier ein praktisches Beispiel für die Optionen die bei Verwendung der cURL Bibliothek sinnvoll sind:
curl_setopt($this->handle, CURLOPT_RETURNTRANSFER, true); curl_setopt($this->handle, CURLOPT_HEADER, true); // Differenzierte Timeouts für Verbindung und komplette Anfrage curl_setopt($this->handle, CURLOPT_TIMEOUT, 10); curl_setopt($this->handle, CURLOPT_CONNECTTIMEOUT, 2); // Leerer Wert sendet alle verfügbaren Kompressionsmethoden curl_setopt($this->handle, CURLOPT_ENCODING, ''); // Setzen des Referee-Headers if(isset($_SERVER['REQUEST_URI'])) curl_setopt($this->handle, CURLOPT_REFERER, $_SERVER['REQUEST_URI']); else curl_setopt($this->handle, CURLOPT_REFERER,$_SERVER['PHP_SELF']); // Versionsinformation zusammenbauen $curlinfo = curl_version(); curl_setopt( $this->handle, CURLOPT_USERAGENT, 'curl/'.$curlinfo['version'].' '.$curlinfo['ssl_version'].' zlib/'.$curlinfo['libz_version'] ); // Optional: Übergabe von X-Track-Headern if (isset($_SERVER['SERVER_NAME'])) $this->headerFields[] = 'X-Track-Server-Name: '.$_SERVER['SERVER_NAME']; if (isset($_SERVER['HTTP_USER_AGENT'])) $this->headerFields[] = 'X-Track-Client-User-Agent: '.$_SERVER['HTTP_USER_AGENT']; $this->headerFields[] = 'X-Track-Client-Addr:'.(isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']); curl_setopt($this->handle, CURLOPT_HTTPHEADER,$this->headerFields);