Krótko o NNTP
NNTP, czyli Network News Tranport Protocol, jak nazwa wskazuje jest protokołem "na którym" działają niusy. Oprócz oryginalnego, przestarzałego (ponad 10 lat!) rfc 977 używane są w praktyce drafty a to dla kilku komend pozwalających na skuteczne filtrowanie oraz wyszukiwanie. Komendy wprowadzane przez:
rfc
- list
- article, body, head, stat
- next, prev
- ihave
drafty
- mode
- check, musthave
- (x)over
- (x)hdr
- (x)pat
- search
Przykładowa sesja nntp:
- MODE READER, czyli klient informuje, że jest zwykłym czytnikiem, serwer zwykle odpowie, że może dostarczać artykuły
- może nastąpić odpytanie o możliwości serwera np. LIST EXTENSIONS, np. dla określenia, czy jest możliwe wyszukiwanie pełnotekstowe, serwer odpowie poleceniami jakie wspiera, nie obejmuje to poleceń z popularnej serii Xcośtam
- jeśli
- listę grup już pobrano może użyć NEWGROUPS [punkt czasowy] by dociągnąć utworzone od ostatniego LIST
- listy grup jeszcze nie pobrano, wykona LIST
w obu przypadkach serwer odpowie listą grup
- używając SEARCH [maska], tylko przez bardzo nowoczesne czytniki współpracujące z równie nowoczesnymi serwerami, maska może specyfikować praktycznie dowolne zapotrzebowanie odnośnie nagłówków z bazy przeglądowej jak i odnośnie samej treści artykułów, może pobierać informacje z dowolnej grupy a także grupy grup
- dla każdej grupy, tak odpytują przeciętne czytniki
- GROUP nazwa_grupy, serwer udzieli informacji o stanie grupy, tj. numer najmniejszego, największego artykułu i orientacyjną liczbę artykułów
- aby pobrać artykuły warte przeczytania czytnik spyta o nie
- najczęściej przy użyciu (X)OVER [zakres], zostaną pobrane wybrane nagłówki artykułów określonych przez zakres pobrane z bazy przeglądowej, zakresem będą artykuły, których jeszcze nie pobrano, na podstawie wyników tego polecenia czytnik podejmie decyzję o pobraniu kompletnych artykułów, przed użyciem XOVER serwer mógłby też odpytać się o to jaki jest format zwracanych przez niego danych używając LIST OVERVIEW.FMT, jest też możliwa sytuacja, że serwer nie obsługuje XOVER, wtedy nagłówki zostaną pobrane sekwencją (X)HDR nazwa_nagłówka, a jeśli nie to po prostu HEAD [artykuł], czy nawet ten punkt zostanie całkiem pominięty
- rzadziej przy użyciu (X)PAT [zakres] [maska], czytnik zapyta maską o artykuły napisane przez określone osoby lub zawierające określone tematy
- dla każdego artykułu wartego przeczytania
- ARTICLE [artykuł] - zostanie pobrany kompletny artykuł, czyli jego nagłówki i treść, w zależności od sposobu pozyskania identyfikatora artykułu, artykuł będzie albo jego numerem albo identyfikatorem message-id
- aby wysłać artykuły użyje POST treść_artykułu, serwer odpowie czy przyjął artykuł, bywa, że czytnik najpierw wyśle artykuły a dopiero potem spróbuje pobrać nowe
- QUIT, serwer rozłączy się
Oczywiście jest także możliwe użycie kilku innych poleceń, ale spotykane są one znaczenie rzadziej i nie widzę specjalnej potrzeby ich opisywania szczególnie, że doba ma 24 godziny i nie chce się wydłużyć.
Prosty program NEWSRDR na bazie komponentów Piette'go, umożliwiający wysyłanie opisanych powyżej komend i obserwowanie odpowiedzi serwera (ZIP 210KB (HTTP, NEWSRDR.zipED2K) )
Więcej o czytnikach niusów i samych niusach
Wszelkie prawa zastrzeżone © Piotr Trzcionkowski 1997-2008