Strony internetowe i wymiana danych
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
Model komunikacji
Poza adresem (URL) protokółHTTPprzewiduje przesyłanie dodatkowych parametrów następującymimetodami:
GET – pobieranie danych,
POST – dodawanie danych,
PUT – zmiana (poprzez edycję) danych,
DELETE – usuwanie danych.
Najczęściej stosuje się komunikację POST lub GET (można ją ustawić w parametrach formularza HTML).
Możemy rozróżnić trzy różne sposoby komunikacji:
Pytanie – odpowiedź. Dane są przesyłane ze źródła do odbiorcy. W drugą stronę wysyłane są jedynie parametry zapytania. Nie ma znaczenia struktura danych ani sposób w jaki zostają one na serwerze uzyskane. Można to porównać do zapytań z bazy danych.
Model REST (ang. RepresentationalStateTransfer). Zapytanie dotyczą danych opisywanych przez identyfikatory URI. Na przykład http://biblioteka.pl/autor/JanBrzechwa. Z tym, że dane mogą mieć wewnętrzną strukturę (warstwy, zagłębienia layer). Na tych danych możemy wykonywać operacje zgodne z bezstanowymprotokołem HTTP: POST, GET, PUT i DELETE. Na przykład:
HTTP | URI | Usługa | SQL |
---|---|---|---|
GET | /obiekt/5 | Read | Select * from obiekt where id=5 |
POST | /obiekt | Create | Insert into obiekt(…) values (...) |
PUT | /obiekt/6 | Update | Update obiekt set …. where id=6 |
DELETE | /obiekt/4 | Delete | Delete obiekt where id=4 |
Do śledzenia komunikacji przydatny jest dodatek dla Firefox’a RESTClient:
Możemy go przećwiczyć na przykładach z Wikipedia: https://www.mediawiki.org/wiki/API:Main_page
3.Usługa sieciowa. Wywoływana jest procedura na serwerze z parametrami. Dawniej stosowano na przykład XML-RPC. Obecnie ten model komunikacji jest wykonywany głównie przez JSON i SOAP (głównie serwisy urzędowe).
Struktury
W komunikacji między aplikacjami można wyróżnić dwie sytuacje: klient jedynie umieszcza uzyskane dane na odpowiednim miejscu strony, lub przetwarza wcześniej ich zawartość.
W pierwszym przypadku dane mogą mieć strukturę strony (HTML). W drugim – muszą być w formie bardziej przyjaznej dla programów – na przykład JSON, XML lub SOAP.
Soap
Soap jest złożoną strukturą opracowaną przez firmę Microsoft. Opiera się ona na standardzie XML. Opis struktury może być wykonany w pliku WSDL,który może służyć do automatycznej analizy komunikatów.
JSON
Struktura SOAP jest zbyt złożona, aby ją analizować po stronie przeglądarki internetowej (w JavaScript). Dlatego opracowano standard Json, który dużo bardziej nadaje się do tego celu. Jest to struktura danych zamieniona na tekst. Na przykład lista (tablica) jest zamieniana na ciąg tekstów w nawiasach klamrowych: https://pl.wikipedia.org/wiki/JSON