To inaczej usługa internetowa, która pozwala na komunikowanie się klientowi z serwerem za pomocą sieci. Najczęściej taka komunikacja odbywa się za pomocą protokołu HTTP, który jest nośnikiem żądań ze strony klienta oraz odpowiedzi ze strony serwera. Web Service to dość abstrakcyjny termin, jednak niezależnie od języka programowania czy systemu operacyjnego działanie zawsze wygląda tak samo lub bardzo podobnie w zależności jakiego rodzaju serwisu używamy. Istnieje wiele standardów, które definiują jak klient ma się komunikować z serwerem, jednak zawsze wyróżniane są dwa główne podejścia: REST oraz SOAP.
REST, czyli Representational State Transfer opiera się na konkretnych adresach URL, które poniekąd działają jak identyfikatory. Na dany adres URL zostaje wysłane zapytanie na serwer, następnie serwer 'mieli' nasze zapytanie i dostajemy odpowiedź. Jednak jest mały haczyk, ponieważ to jak zareaguje serwer na nasze zapytanie jest uzależnione od tego jakiej metody protokołu HTTP użyjemy. Oficjalnie takich metod jest 7, jednak korzysta się z czterech bądź nawet tylko z dwóch:
GET - pobiera dane z serwera
POST - przesyła dane na serwer
PUT - aktualizuje dane, które już są na serwerze
DELETE - usuwa dane z serwera
Najistotniejsze metody to GET oraz POST, de facto możemy zbudować aplikację webową opierając się tylko na tych dwóch metodach, jednak używanie czterech powyższych jest powszechnie uważane jako dobra praktyka w pisaniu kodu. REST jest intuicyjny i prosty w implementacji, dlatego też jest często wykorzystywany w systemach z którymi się łączy duża ilość klientów, gdzie większość operacji opiera się pobieraniu i wysyłaniu danych.
SOAP, czyli Simple Object Access Control jest nieco bardziej zautomatyzowanym standardem niz REST, implementuje się go w plikach XML, gdzie definiowany jest sposób komunikacji między klientem a serwerem. SOAP zakłada, że każdy serwis powinien udostępniać plik, który zawiera szczegółową specyfikację operacji, które chcemy wdrożyć w naszej aplikacji, jakie dane są przetwarzane w tych operacjach oraz jakiego typu. To podejście z góry narzuca jakieś zasady, do których będziemy musieli się dostosować, jednak w zamian dostajemy automatyzację dzięki narzędziom, które częściowo mogą nas wyręczyć z pracy. Mimo wszystko budowanie aplikacji opartych o SOAP może być nieco kłopotliwe i mniej zrozumiałe dla osób, które zaczynają swoją przygodę z projektowaniem aplikacji webowych.