Inhaltsverzeichnis

Eigene webservice_SmartGate Clients

Best-Practices allgemein

Folgende Best-Practices haben sich unabhängig der Programmiersprache des Clients bei der Entwicklung eigener Zugriffsbibliotheken bewährt:

libcurl

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);