>> Głośnik 1: Dobra, więc co to ty konkretnie trzeba zrobić?
Cóż, okazuje się, istnieje zaledwie cztery funkcje
które należy wdrożyć których funkcjonalność jest
Integralną częścią prawidłowego Działanie serwera WWW,
ale którego wszystkie zachowanie jest bardzo wąsko
zdefiniowane tak, że tylko zrobić prawie jedną rzecz.
Pierwszą rzeczą, którą zamierzamy do musisz zrobić, to wdrożenie,
wg specyfikacji, funkcja wyszukiwania.
Jest to dość prosta funkcja w koniec, że jako argument
co ścieżka do pliku że użytkownik chce zażądać,
i trzeba reagować z tak zwany typ MIME lub Content-type,
tego pliku.
Na przykład, jeśli jest to jak plik hello kropka
HTML masz zamiar odpowiedzieć z MIME rodzaj cytatu slash tekst HTML.
>> Albo czy jest to obraz, możesz odpowiedzi z obrazu dot kreską
Momencik lub obraz slash JPEG.
Zobacz specyfikację dla różnych formaty plików należy do wykrycia.
Ale tak naprawdę sprowadza się do robienia patrzeć na drogę, że jesteś obok,
i patrząc na jego pliku Rozszerzenie, w ostatnich kilku znaków
po okresie spływu lub kropką.
Będziemy więc pozostawić je do Ciebie z niektórymi z podpowiedzi w specyfikacji
dowiedzieć się dokładnie, jak znaleźć że kropka i rozszerzenie pliku
tak, że można zrobić to mapowanie jeden do drugiego.
>> Następna w kolejce jest funkcja parse.
Tak więc ten jeden jest trochę bardziej zaangażowane w tym
trzeba wziąć w tym Argument [niesłyszalne],
to powtórzyć nad nim, charakter w charakterze, lub ciąg sznurkiem,
W celu upewnienia się, że spełnia dokładnie
formalna definicja, że ​​pierwsza Żądanie linii, zgodnie ze specyfikacją.
I trzeba załadować do absolutnego Ścieżka, że ​​podciąg, który reprezentuje
coś, slash powitania dot HTML.
Tymczasem, ewentualnie, po czym Ścieżka może być znak zapytania
a następnie ciąg kwerendy jak, q wynosi kotów,
lub q równa koty Ampersand i potem jeszcze parę klucz wartość.
Więc będziesz musiał krok na tych znaków,
jak dobrze, aż do momentu Pierwsza przestrzeń, w celu
aby utworzyć ciąg, który przechowuje wewnątrz niego sam ciąg kwerendy.
Następnie będziesz realizacji funkcji obciążenia.
Tak więc okazuje się, jeśli spojrzeć przez kod źródłowy, jako spec kieruje,
funkcją obciążenia jest stosowany w dwóch miejscach.
To albo ładujący Wyjście z interpretera PHP.
I pisaliśmy wszystko kod obsługi PHP,
ale nie musi używać funkcji o nazwie
obciążenia, które zasadniczo czyta wszystkie z bajty wyjścia z interpretera PHP
do wielkiej tablicy.
>> To samo obciążenie funkcji służy również do ładowania
w pamięci wszystkich bajtów z pliku podobnych, Momencik, lub JPEG lub kropka HTML
Plik, że użytkownik zażądał.
Więc trzeba będzie korzystać z niektórych trików i narzędzi z problemem zestaw 4 w pliku IO,
ale należy zauważyć, że stosunkowo znane i w miły sposób, mam nadzieję,
związania razem nowszą internecie rzeczy ze starszym plików IO rzeczy.
>> Na koniec, w indeksach Funkcja, wszystko co musisz zrobić,
jest, aby zdecydować, czy istnieje skutecznie istnieje jakiś plik
zwany wskaźnik dot HTML, PHP lub indeksu kropka, wewnątrz katalogu, którego ścieżka was
to przeszłość.
Zaletą tego oznacza, że ​​jeżeli użytkownik nie poprosić o katalog,
nie jesteśmy po prostu zamiar pokazać go lub jej zawartość tego katalogu,
my dosłownie pokazać im indeksu kropkę HTML, PHP lub indeksu kropka, domyślnie.
Ale to będzie należeć do ciebie dowiedzieć się, za pomocą niektórych podpowiedzi
w kodzie źródłowym, które my już wam,
jak rzeczywiście można sprawdzić czy dany plik istnieje
w bieżącym katalogu, tak aby można przywrócić prawidłową odpowiedź.
>> W końcu, więc nie stosunkowo niewiele bajtów
że trzeba wyjąć z Problem ustawić do wdrożenia serwera
niepełna funkcjonalność.
Ale na pewno upewnij się owinąć twój umysł wokół tyle kodu
jak to możliwe, biorąc komfort w to, że nie
muszą zrozumieć wszystkie z Najniższy poziom kodu sieci, wszystkie
najniższego poziomu kodu plików IO.
Naprawdę, co robimy z tego zestawu problemów
syntetyzuje ostatnich kilku problemu zestawy, wprowadzając trochę WebLogic,
i koncepcji sieciowych, tak że ostatecznie można
zbudować coś, co jest naprawdę bardzo ciekawe, naprawdę bardzo silny,
ale przy użyciu same klocki,
które używaliśmy przez jakiś czas.