Podstawy#
Fecz#
Strony internetowe i aplikacje webowe tworzą wiele zapytań do serwera i mogą otrzymywać od niego wiele odpowiedzi. Wszystkie te zapytania i odpowiedzi występują pod pojęciem jednego procesu zwanego feczowaniem (fetching). Proces feczowania występuje najczęściej w połączeniu z adresami URL, czyli może przewijać się w wielu specyfikacjach WWW, które w jakikolwiek sposób przetwarzają adresy URL. W ramach uproszczenia tychże specyfikacji utworzono osobny dokument definiujący fecz:
- "Fetch Living Standard" (WHATWG)
Specyfikacja jest bardzo świeża i minie jeszcze sporo czasu nim pozostałe dokumenty całkowicie przejdą na nowy materiał. Mam tutaj na myśli głównie specyfikację HTML5, która na dzień dzisiejszy definiuje własny mechanizm feczowania zasobów, ale z informacją, że w przyszłości planowana jest zmiana.
Pisząc "specyfikacja fecz" lub "specyfikacja feczowania" mam na myśli przytoczoną wersję.
Dlaczego nazwy "fecz" i "feczowanie"?#
Oryginalne terminy "fetch" i "fetching" są proste i przyjemne, ale ze względu na sposób tworzenia kursów potrzebowałem ich sensownego spolszczenia. Rozważałem następujące warianty:
- pobrać/pobranie
- pobierać/pobieranie
- sprowadzić/sprowadzenie
- ściągnąć/ściągnięcie
- osiągnąć/osiągnięcie
- sprowadzić/sprowadzenie
- wydobyć/wydobycie
- posłać/posłanie
Ogólnie rzecz biorąc potrzebna jest polska nazwa, która wyrazi proces zapytania (bez konieczności uzyskania odpowiedzi) albo proces zapytania z odpowiedzią. Suma summarum pozostałem przy spolszczonym wariancie fecz/feczowanie, ale z możliwości przyszłej zmiany (czekam na jakieś sugestie).
Cele wyznaczone przez specyfikację#
W ramach ujednolicenia procesu feczowania w całej platformie webowej specyfikacja feczu zastępuje kilka algorytmów i standardów:
- Algorytm feczu i feczu z włączonym CORS ze specyfikacji HTML5.
- Standard "CORS - Cross-Origin Resource Sharing".
- Semantykę nagłówka HTTP
"Origin"
ze standardu RFC 6454 - "The Web Origin Concep".
Ujednolicenie procesu feczowania zapewnia spójną obsługę:
- Schematów URL
- Przekierowań (redirects)
- Semantykę mieszanego pochodzenia (corss-origin)
- Politykę Bezpieczeństwa Zawartości ("CSP - Content Security Policy")
- Wątków Serwisu ("Service Workers")
- Wymieszanej Zawartości ("Mixed Content")
- Nagłówka HTTP
"Referer"
("Referrer Policy")
Obsługa przez przeglądarki internetowe#
Na dzień dzisiejszy jedynie przeglądarka Firefox w wersji Nightly wdrożyła część poleceń z nowego API dla feczowania. Przed testowaniem należy przełączyć w about:config
flagę dom.fetch.enabled
na boolowską wartość true
. Implementowanie przez pozostałe przeglądarki wydaje się być tylko kwestią czasu, chociaż nie mam żadnych szczegółowych informacji odnośnie planowanych terminów.