Uniform Resource Locators (URL) RFC 1738 Andrzej Fryzka Maciej Gugała SIP - URL (RFC 1738)
Plan prezentacji Wstęp Składnia URL Omówienie schematów URL (HTTP, MAILTO, itd.) Rejestracja nowych schematów Bezpieczeństwo SIP - URL (RFC 1738)
Wstęp URL (ang. Uniform Resource Locator) opisuje składnie i semantykę ogólną ujednoliconego formatu adresowania zasobów (informacji, danych, usług), stosowany w Internecie i w sieciach lokalnych. Pochodny RFC 1630: „Universal Resource Identifiers in WWW”. Traktowany często jako synonim URI w dokumentach technicznych i nie tylko. Najczęściej kojarzony z adresami WWW, lecz ten format adresowania służy do do identyfikowania wszelkich zasobów dostępnych w Internecie. URL stworzono by sprostać wymaganiom opisanym w: Kunze, J., "Functional Requirements for Internet Resource Locators", Work in Progress, December 1994. SIP - URL (RFC 1738)
<scheme>:<scheme-specyfic-part> Ogólna składnia URL <scheme>:<scheme-specyfic-part> określa rodzaj zasobu/usługi może składać się z: - małych liter (a ... z), - cyfr, - plusa ("+"), - kropki ("."), - myślnika ("-"). Na ogól przez oprogramowanie akceptowane są duże litery ze względu na możliwość pomyłki. : zależy od rodzaju zasobu omówiona na kolejnych slajdach SIP - URL (RFC 1738)
Składnia <scheme-specyfic-part> (1) Ogólna składnia <scheme-specyfic-part>: //<user>:<password>@<host>:<port>/<url-path> Pominięte mogą być: - „<user>:<password>@”, - „:<password>”, - „:<port>”, - „/<url-path>”. Wymagane są: - „//”, - „<host>”. Często oprogramowanie, szczególnie przeglądarki, akceptuje także niepoprawne formy adresów – pominięty separator „//” czy określenie protokołu „http://” SIP - URL (RFC 1738)
Składnia <scheme-specyfic-part> (2) //<user>:<password>@<host>:<port>/<url-path> Wymagane: host – zastrzeżona domena lub jej adres IP: - domena składająca się z części oddzielonych kropką(„.”). Każda część nazwy zaczyna się i kończy znakiem alfanumerycznym i może zawierać myślnik („-”). [więcej w RFC 1034 i RFC 1123] - Adres IP reprezentowany przez cztery grupy cyfr oddzielone kropką („.”). „//” – dodawana, by dostosować się do składni adresów internetowych SIP - URL (RFC 1738)
Składnia <scheme-specyfic-part> (3) //<user>:<password>@<host>:<port>/<url-path> Opcjonalne: user – opcjonalna nazwa użytkownika, password – opcjonalne hasło. Jeżeli występuje, określa hasło dla użytkownika oddzielonego od hasła dwukropkiem, port – numer portu połączenia. Większość schematów posiada domyślny port, gdy się łączymy przez domyślny port tą część można pominąć. url-path - ścieżka dostępu do zasobu. SIP - URL (RFC 1738)
Składnia : kodowanie Dopuszczalne jest kodowanie adresu URL na następujące sposoby: Znaki ASCII - „normalne” litery (mające odpowiedniki w ASCII) - kodowanie heksadecymalne (poprzedzone znakiem „%”) Znaki unsafe: „>”, „<”, „ ” ”, „#”, „(”, „)”, „|”, „\”, „^”, „~”, „[”, „]”, „`”, „%”. Znaki zastrzeżone: „/”, „?”, „:”, „@”, „=”, „&” SIP - URL (RFC 1738)
Rodzaje protokołów: FTP (RFC 959) FTP (ang. File Transfer Protocol) - protokół typu klient-serwer, który umożliwia przesyłanie plików z i na serwer poprzez sieć TCP/IP. Ogólna składnia: //<user>:<password>@<host>:<port>/<url-path>, gdzie <url-path>: <cwd1>/<cwd2>/.../<cwdN>/<name>;type=<typecode>, Port domyślny: 21. USER i PASSWORD opcjonalne (dumyslnie odpowiednio: „anonymous” oraz adres e-mail) type=<typecode> - parametr opcjonalny, aplikacja przydziela typ automatycznie SIP - URL (RFC 1738)
Rodzaje protokołów: HTTP (RFC 2616) HTTP (ang. Hypertext Transfer Protocol) – Za pomocą protokołu HTTP przesyła się żądania udostępnienia dokumentów WWW. Ogólna składnia: http://<host>:<port>/<path>?<searchpart> Port domyślny: 80. username i password są zabronione przez RFC. <path>?<searchpart> - parametr opcjonalny, znaki zarezerwowane: „?”, „/” i „;”. SIP - URL (RFC 1738)
Rodzaje protokołów: GOPHER (RFC 1436) Gopher – udostępnia zasoby, udoskonalona wersja FTP, rozszerzona o opcje hyperlinking. Ogólna składnia: gopher://<host>:<port>/<gopher-path> Port domyślny 70. gopher-path może odpowiadać: <gophertype><selector> <gophertype><selector>%09<search> <gophertype><selector>%09<search>%09<gopher+_string> SIP - URL (RFC 1738)
Rodzaje protokołów: MAILTO (RFC 822) Poczta elektroniczna - to jedna z usług internetowych, służąca do przesyłania wiadomości tekstowych. Obecnie do przesyłania e-maili używany jest protokół Simple Mail Transfer Protocol. Ogólna składnia: mailto:<rfc822-addr-spec> <rfc822-addr-spec> - adres odbiorcy i rozszerzenia, np.: mailto:afryzka@o2.pl?subject=SIP%20prezentacja SIP - URL (RFC 1738)
Rodzaje protokołów: NEWS (RFC 1036) NEWS – używany do obsługi grup dyskusyjnych, obsługuje klienta USENET’owego Ogólna składnia: news:<newsgroup-name> lub news:<message-id> SIP - URL (RFC 1738)
Rodzaje protokołów: NNTP (RFC 997) NNTP – alternatywna metoda do odbierania wiadomości i artykułów z serwerów NNTP (grup dyskusyjnych). Ogólna składnia: nntp://<host>:<port>/<newsgroup-name>/ <article-number> Port domyślny: 119. SIP - URL (RFC 1738)
Rodzaje protokołów: TELNET (RFC 854 i 855) TELNET – standard protokołu komunikacyjnego używanego w sieciach komputerowych do obsługi odległego terminala w architekturze klient-serwer Ogólna składnia: telnet://<user>:<password>@<host>:<port>/ Port domyślny: 23. Parametry opcjonalne: - „<user>:<password>”, - „<password>”, - „/” na końcu. SIP - URL (RFC 1738)
Rodzaje protokołów: WAIS (RFC 1625) Wide Area Information Server (WAIS) - rozproszony system wyszukiwania tekstów na zdalnych komputerach, typu klient-serwer, wykorzystujący protokół ANSI Z39.50. Ogólna składnia: wais://<host>:<port>/<database> - wskazanie konkretnej bazy plików wais://<host>:<port>/<database>?<search> - szczegółowe wyszukiwanie wais://<host>:<port>/<database>/<wtype>/<wpath> - wskazuje konkretny dokument Port domyślny: 210. SIP - URL (RFC 1738)
Rodzaje protokołów: FILES (RFC 1630) FILES – używany do wskazania plików dostępnych na wskazanym hoście. Ogólna składnia: file://<host>/<path> host – pełna nazwa domeny, parametr opcjonalny, domyślna wartość: localhost. path – hierarchiczny zapis katalogowy. SIP - URL (RFC 1738)
Rodzaje protokołów: PROSPERO (RFC 1630) PROSPERO – wskazuje zasoby, które są dostępne przez PDS. Ogólna składnia: prospero://<host>:<port>/<hsoname>;<field>=<value> Port domyślny: 1525. hsoname – nazwa specyficznego obiektu dla hosta port – parametr opcjonalny SIP - URL (RFC 1738)
Rejestracja nowych schematów (1) Nowe schematy będą mapowane, aby pasowały do składni URL poprzez dodanie nowego przedrostka. „x-” zarezerwowany dla celów eksperymentalnych Propozycje nowych schematów muszą zawierać: - składnię nowego schematu, - definicje algorytmu dostępu do zasobów udostępnianych przez ten schemat. Nowe schematy muszą być zaakceptowane przez Internet Assigned Numbers Authority (IANA) SIP - URL (RFC 1738)
Rejestracja nowych schematów (2) Zarezerwowane przez IANA przedrostki proponowanych schematów: - afs: Andrew File System global file names. - mid: Message identifiers for electronic mail. - cid: Content identifiers for MIME body parts. - nfs: Network File System (NFS) file names. - tn3270 Interactive 3270 emulation sessions. - Mailserver: Access to data available from mail servers. - z39.50: Access to ANSI Z39.50 services. SIP - URL (RFC 1738)
Bezpieczeństwo RFC 1738 (URL) nie omawia zagrożeń, jedynie uświadamia nas o ich istnieniu. Brak gwarancji, że wskazany obiekt istnieje, nie został podmieniony. Należy zawsze wskazywać port odpowiedni dla danego protokołu. Powinniśmy zachować szczególną ostrożność gdy używamy portu innego niż domyślny. Nie należy używać URL wraz z hasłami. SIP - URL (RFC 1738)