PHPa komunikacja w internecie

FormularzeHTML

[27]

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Książki</title>
<style> td {padding: 10px; border:1px solid gray;} </style>
</head>
<body>
<?php
$nazwa_pliku = __DIR__.'/books.json'; // plik z książkami na swerwerze
// ewentualne dodanie nowej książki
if (! file_exists($nazwa_pliku) )  $books=[];
else {
    $books = json_decode(file_get_contents($nazwa_pliku), true);
}
$nowa = isset($_GET['title']) || isset($_GET['authors']);
if ($nowa) {
    $books[] = 
        [ 'title' => $_GET['title'],
          'authors' => $_GET['authors']
        ];
    if (is_writable($nazwa_pliku)) 
      file_put_contents( $nazwa_pliku, json_encode($books) );
}
if ($books) { // zwracam tabelę książek
?>    
    <table>
    <?php foreach ($books as $book): ?>
    <tr><td><?= $book['title'] ?></td><td><?= $book['authors'] ?></td></tr>
    <?php endforeach ?>
    </table>
<?php
}
?>
<form action="ex27.php" method="get"> 
<!-- metoda get lub post; get - w adresie URL wartości -->
<h3>Nowa książka</h3>
<div>Autorzy:<input type="text" name="authors" /></div>
<div>Tytuł:<input type="text" name="title" /></div>
<input type="submit" value="Zapisz"/>
</form>
</body>
</html>

Protokół HTTP

Sposób przesyłania danych w internecie definiują standardy komunikacyjne (protokoły). Dane w internecie są przesyłane przy użyciu standardu TCP/IP (czasem UDP). Standardy regulują jednak nie tylko sam proces przesyłania danych, ale także to co z tymi danymi robią aplikacje (na przykład inaczej są obsługiwane przesyłane pliki, a inaczej komendy). Dlatego różne standardy mogą regulować komunikację na różnym poziomie (zob. Model Warstwowy). Dla programisty aplikacji najważniejsza jest oczywiście warstwa najwyższa (warstwa aplikacji). Mamy w niej protokoły HTTP (strony internetowe), FTP (pliki), DNS (adresy komputerów) etc… Najczęściej wykorzystywanym standardem (protokołem) komunikacji jest obecnie HTTP (lub z szyfrowaniem: HTTPS). Pierwotnie służył on jedynie do przesyłania stron internetowych oraz danych z formularzy umieszczonych na tych stronach. Obecnie służy także do komunikacji między aplikacjami. Protokół ten jest bezstanowy. Oznacza to, że uzyskane dane nie zależą od wcześniejszej historii (stanu) połączenia. Dlatego gdy potrzebujemy zapamiętać stan komunikacji, stosuje się dodatkowe mechanizmy (sesje i ciasteczka). Adres internetowy z podaniem protokołu nazywa się URL. Na przykład: https://www.google.com