Narzędzia internetowe Paweł Rajba
O czym to będzie? HTTP HTML/XHTML CSS JavaScript PHP JSP lub/i ASP.NET XML Serwery WWW
Literatura Dokumenty RFC W3 Konsorcjum HTTP RFC2616, RFC2817 – protokół HTTP 1.1 RFC1738, RFC2396 – URL, URI
Literatura c.d. HTML CSS
Literatura c.d. JavaScript PHP Java, JSP
Literatura c.d. XML ASP.NET
Narzędzia Macromedia Dreamweaver MX Microsoft FrontPage 2000 Microsoft Visual Studio.NET HotDog Pajączek 5 NxG
Narzędzia c.d. WebEdit 2002, EasyCSS ConTEXT Adobe Photoshop 6 GIMP [Win32]
Protokół HTTP/1.1 URI, URL, URN URI, czyli Uniform Resource Identifier URL, czyli Uniform Resource Locator URN, czyli Uniform Resource Name Spojrzenie Klasyczne (URI = [URL lub URN]) Obecne (URI = URL)
Protokół HTTP/1.1 c.d. Składnia URI :// ? Przykłady typowych schematów news://pl.comp.os.linux/ telnet:// /
Protokół HTTP/1.1 c.d. Przykład schematu http http: – schemat, rodzaj protokołu //my.host.pl – autoryzacja, nazwa hosta 8080 – nr portu /index.php – ścieżka do zasobu z1=w1&z2=w2 – zapytanie
Protokół HTTP/1.1 c.d. Metody protokołu HTTP GET – pobiera zasoby, HEAD – działa tak samo jak GET, ale zwraca tylko sam nagłówek bez treści dokumentu, POST – przesłanie danych do serwera DELETE- żąda, aby serwer usunął zasób, OPTIONS – pozwala klientowi ustalić opcje i/lub wymagania związane z danym zasobem (np. listę dostępnych metod).
Protokół HTTP/1.1 c.d. Nagłówki ogólnego przeznaczenia Cache-Control: żądanie: no-cache|no-store – warunki buforowania odpowiedź: public|private – określa rodzaj cachea (wspólny, prywatny) Connection: keep-alive|close – typ połączenia Date: HTTP-date – data utworzenia Pragma: no-cache – informacje dla serwerów pośredniczących
Protokół HTTP/1.1 c.d. Nagłówki klienta Accept: typ/podtyp – akceptowane typy danych Accept-Charset: alfabet – akceptowany zestaw znaków Accept-Encoding: compress | gzip | deflate – metoda kodowania Accept-Language: język – akceptowany język Host: nazwa-hosta[:port]
Protokół HTTP/1.1 c.d. Nagłówki klienta c.d. If-Modified-Since: HTTP-date – jeśli dokument został zmodyfikowany od data Range: bytes=początek-koniec – wybieramy fragment dokumentu Referer: URI – adres URL dokumentu zawierającego odwołanie do adresu żądanego dokumentu User-Agent: nazwa – informacje o kliencie
Protokół HTTP/1.1 c.d. Nagłówki serwera Accept-Ranges: bytes | none – czy serwer akceptuje żądania cześci dokumentu Location: URI – nowy adres zasobu Retry-After: HTTP-date | delta-miliseconds – informuje po jakim czasie należy ponownie pobrać zasób (razem z kodem 5xx lub 3xx) Server: product – informacje o sofcie po stronie serwera
Protokół HTTP/1.1 c.d. Pola zawartości Allow: GET, HEAD – dozwolone metody Content-Encoding: gzip – rodzaj kodowania Content-Language: en - język Content-Length: liczba – wielkość dokumentu Content-Range: początek-koniec/rozmiar – pobrano bajty od początek do koniec, a całość ma rozmiar rozmiar
Protokół HTTP/1.1 c.d. Pola zawartości c.d. Content-Type: text/html; charset=ISO – typ zawartości dokumentu Expires: HTTP-date – moment, po którym dokument jest już nieaktualny Last-Modified: HTTP-date – data ostatniej modyfikacji dokumentu
Protokół HTTP/1.1 c.d. Kody odpowiedzi 1xx – informacyjne, żądanie zostało przyjęte 2xx – pomyślne, żądanie zostały poprawnie przetworzone 3xx – przeadresowanie, w celu zakończenia czynności trzeba podjąć dalsze kroki 4xx – błędny URL lub inny błąd występujący po stronie klienta 5xx – błąd w pracy serwera
Protokół HTTP/1.1 c.d. Przykładowa komunikacja Żądanie: swiatowit:pawel:~> telnet 80 Trying Connected to swiatowit.ii.uni.wroc.pl. Escape character is '^]'. GET /~pawel/index.html HTTP/1.1 Host: Connection: keep-alive
Protokół HTTP/1.1 c.d. Przykładowa komunikacja c.d. I odpowiedź: HTTP/ OK Date: Sat, 21 Feb :34:11 GMT Server: Apache/ (Unix) mod_ssl/ OpenSSL/0.9.6h PHP/4.3.4 Last-Modified: Tue, 08 Oct :48:55 GMT ETag: "bc6b-339-3da30c77" Accept-Ranges: bytes Content-Length: 825 Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html