Protoków NNTP wykorzystywany przy grupach dyskusyjnych
Protoków NNTP wykorzystywany przy grupach dyskusyjnych Obecnie standardem przesyłu informacji wykorzystywanym przez serwery Usenet News jest protokół NNTP (Network News Transport Protocol) na TCP/IP. Definiuje on zestaw poleceń, które służą do porozumiewania się ze sobą klientów i serwerów grup dyskusyjnych, a także zawartość i znaczenie struktury wiadomości (szczególnie pozycje nagłówka). Działanie protokołu NNTP Format artykułów przesyłanych przez serwery grup dyskusyjnych określany jest przez specyfikacje RFC 850, 977 , 1036. Format wiadomości jest bardzo podobny do formatu wiadomości poczty elektronicznej. Na jej początku mieści się nagłówek, którego poszczególne wiersze zawierają informacje związane z nadawcą, grupami na które wiadomość jest wysyłana, specyfikacjami formatu i inne obowiązkowe lub opcjonalne pozycje. Po nagłówku występuje pusty wiersz, a następnie właściwa treść wiadomości. Na końcu artykułu znajduje się wiersz zawierający jedną kropkę. Przykładowe źródło nagłówka wiadomości przedstawia się następująco: Path:news.tpi.pl!newsfeed.tpinternet.pl!news.ipartners.pl!news.task.gda.pl!!t-online.de! news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!sn-xit-03!sn-post-02!sn-post-01! supernews.com!corp.supernews.com!not-for-mail From: "techstocker" <xxxxxx@chartermi.net> Newsgroups: pl.biznes.wgpw Subject: THE NEW RULES OF INVESTING Date: Sat, 29 Jun 2002 11:50:12 -0400 Organization: Posted via Supernews, http://www.supernews.com Message-ID: <uhrlkvqu6euc42@corp.supernews.com> X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-Complaints-To: newsabuse@supernews.com Lines: 41 Xref: news.tpi.pl pl.biznes.wgpw:100265 Poniżej wymieniona jest większość pół jakie mogą się znaleźć w nagłówku wiadomości: Date: data i godzina utworzenia wiadomości; From: adres poczty elektronicznej nadawcy, wykorzystywany przy wysyłaniu odpowiedzi na prywatny adres autora artykułu; Subject: temat artykułu. W przypadku, gdy artykuł stanowi odpowiedź w tytule często pojawiają się skróty „Odp:” lub „Re:”; Newsgroups: nazwy grup dyskusyjnych, do których artykuł jest wysyłany (może być jednocześnie wiele nazw grup oddzielonych przecinkami); Message-Id: unikatowy numer wiadomości. Numer identyfikacyjny pozwala na kojarzenie wiadomości w ramach poszczególnych wątków. Wszystkie odpowiedzi na wiadomość w polu nagłówka References posiadają wartość Message-Id oryginalnej wiadomości. Przykładowy identyfikator wiadomości mógłby wyglądać następująco: ewertyewqwe223@news.tpi.pl - gdzie ciąg „ewertyewqwe223” jest kodem generowanym na podstawie bieżącej daty i czasu, natomiast „news.tpi.pl” jest adresem serwera gdzie wiadomość pojawiła się po raz pierwszy; Path: adresy serwerów, które uczestniczyły w przekazie (rozdzielone przecinkami lub wykrzyknikami); Reply-To: adres e-mail który powinien być wykorzystany do wysyłania odpowiedzi na prywatny adres nadawcy (pole opcjonalne - domyślnie tę rolę pełni pole „From:”); Sender: nazwa/imię i nazwisko nadawcy artykułu; Expires: data określająca, jak długo artykuł będzie dostępny na serwerze; References: identyfikator artykułu, do którego odnosi się wiadomość. W tym polu wymienione są identyfikatory wszystkich artykułów należących do wątku; Approved: pole wykorzystywane przy artykułach wysyłanych na grupy moderowane. Określa, że artykuł został sprawdzony i zaakceptowany przez moderatora; Control: pole kontrole wykorzystywane do operacji administracyjnych – tworzenia tzw. artykułów kontrolnych; Distribution: pole zawierające np. symbole domen, w zasięgu których będzie rozpowszechniany artykuł; Keywords: słowa kluczowe związane z artykułem; Lines: liczba wierszy artykułu. Standardowo komunikacja pomiędzy programami – klientami grup dyskusyjnych i serwerami odbywa się z wykorzystaniem portu nr 119 (563 w przypadku wykorzystania szyfrowanej, bezpiecznej transmisji SSL) Polecenia protokołu NNTP przy komunikacji klienta z serwerem grup dyskusyjnych Podobnie jak w przypadku wielu innych internetowych protokołów, komunikacja odbywa się na zasadzie: żądanie – odpowiedź. Żądanie zawiera polecenie i parametry z nim związane. Poniżej pokazane zostały przykłady takich poleceń które wysyła program klienta grup dyskusyjnych do serwera. Przekazywane są one w sposób niewidoczny dla użytkownika i ich znajomość w zasadzie nie jest potrzebna, za wyjątkiem specyficznych sytuacji kiedy np. istnieje konieczność napisania aplikacji, programu, który będzie nawiązywał połączenie i dialog z serwerem grup dyskusyjnych. Wybór grupy dyskusyjnej przez klienta: GROUP pl.test Zmiana aktualnego artykułu na następny dostępny : NEXT Zmiana aktualnego artykułu na ostatni dostępny : LAST Zmiana aktualnego artykułu na określony numerem 12345: STAT 12345 Pobranie całego artykułu nr 12345: ARTICLE 12345 Pobranie aktualnego artykułu: ARTICLE Pobranie tylko nagłowka artykułu nr 12345: HEAD 12345 Pobranie tylko treści artykułu nr 12345: BODY 12345 Pobranie listy dostępnych grup dyskusyjnych: LIST Pobranie listy nowych grup dyskusyjnych dodanych na serwerze po 1 lutego 1999 r. po godz. 12:30: NEWSGROUPS 990201 123000 GMT Serwer odpowiada na wszystkie wysłane żądania kodem określającym typ rezultatu operacji (błąd, powodzenie). Aby możliwe były pewne czynności administracyjne, wykorzystywane są także tzw. artykuły kontrolne. Mogą one służyć do tworzenia nowych grup, usuwania istniejących. Od zwykłych artykułów różnią się tym, że w nagłówku posiadają dodatkowe pole Control. Przykładowa postać tego fragmentu nagłówka powodująca utworzenie nowej grupy mogłaby wyglądać następująco (utworzenie nowej moderowanej grupy): CONTROL: newgroup alt.szkola.wsiz moderated Inny przykład (skasowanie artykułu): CONTROL: cancel <37B955E6.591F82BF@news.tpi.pl> Aby nie każdy użytkownik Internetu mógł tworzyć i usuwać grupy, zazwyczaj serwer grup dyskusyjnych wymaga podania w polu nagłówka Approved: informacji uwierzytelniających (np. podpis PGP). Artykuły kontrolne używane są także do pobierania z serwera innych informacji np. wersji oprogramowania. |