GET: Een pagina opvragen

GET kennen we allemaal wel, gewoon een pagina opvragen. Als je een
browser hebt die GET ondersteunt kom je al een heel eind, je kan alle
pagina's opvragen. Je kan alleen nog niet dingens als formulieren
verzenden.
In princiepe hoef je alleen het body gedeelte uit de pagina te knippen
en voor de rest moet je natuurlijk een goede request maken en je
sockets goed opbouwen. Met die basis krijg je iets als deze basis
browser:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<?php

// Nodige informatie
define('SERVER', 'www.example.org');
define('PORT', 80);
define('PATH', '/example.php');

// Versie
define('VERSION', '1.0');

// End of line
define('_EOL', "\r\n");

// Maak een socket
$sock = socket_create(AF_INET, SOCK_STREAM, 0);
if (!$sock) {
       echo 'Fatal error: Couldn\'t create socket';
       exit;
}


// Maak verbinding
if (!socket_connect($sock, SERVER, PORT)) {
       echo 'Fatal error: Couldn\'t connect';
       exit;
}


// Maak het request
$request = null;
$request .= 'GET ' . PATH . ' HTTP/1.0' . _EOL;
$request .= 'Host: ' . SERVER . _EOL;
$request .= 'User-Agent: LegolasWeb WebBrowserDemo ' . VERSION . _EOL;
$request .= _EOL;

// En verstuur het
if (!socket_send($sock, $request, strlen($request), 0)) {
       echo 'Fatal error: Couldn\'t send request';
       exit;
}


// Haal de response op
$output = null;
$buffer = null;
while (socket_recv($sock, $buffer, 1024, 0) != 0) {
       $output .= $buffer;
}


// Isoleer het body gedeelte en toon het
$output = explode(_EOL . _EOL, $output);
$output = $output[1];
echo $output;

?>

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Basiskennis HTTP
  3. GET: Een pagina opvragen
  4. POST I: Een formulier verzenden
  5. POST II: Bestanden uploaden
  6. De response headers en status
  7. Proxies
  8. En nu?

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.