fix mistakes
This commit is contained in:
34
ru/03.4.md
34
ru/03.4.md
@@ -109,24 +109,24 @@ Go использует следующий код для ожидания нов
|
|||||||
Давайте посмотрим на поток выполнения.
|
Давайте посмотрим на поток выполнения.
|
||||||
|
|
||||||
- Вызывается `http.HandleFunc`.
|
- Вызывается `http.HandleFunc`.
|
||||||
1. Вызывается `HandleFunc` из `DefaultServeMux`.
|
1. Вызывается `HandleFunc` из `DefaultServeMux`.
|
||||||
2. Вызывается `Handle` из `DefaultServeMux`.
|
2. Вызывается `Handle` из `DefaultServeMux`.
|
||||||
3. Добавляются правила маршрутизации в карту `map[string]muxEntry` из `DefaultServeMux`.
|
3. Добавляются правила маршрутизации в карту `map[string]muxEntry` из `DefaultServeMux`.
|
||||||
- Вызывается `http.ListenAndServe(":9090", nil)`.
|
- Вызывается `http.ListenAndServe(":9090", nil)`.
|
||||||
1. Создается экземпляр `Server`.
|
1. Создается экземпляр `Server`.
|
||||||
2. Вызывается `ListenAndServe` для `Server`.
|
2. Вызывается `ListenAndServe` для `Server`.
|
||||||
3. Вызывается `net.Listen("tcp", addr)` для прослушки порта.
|
3. Вызывается `net.Listen("tcp", addr)` для прослушки порта.
|
||||||
4. Запускается бесконечный цикл, в теле которого происходит прием запросов.
|
4. Запускается бесконечный цикл, в теле которого происходит прием запросов.
|
||||||
5. Создается экземпляр Conn и запускаются горутины для каждого запроса: `go c.serve()`.
|
5. Создается экземпляр Conn и запускаются горутины для каждого запроса: `go c.serve()`.
|
||||||
6. Читаются данные запроса: `w, err := c.readRequest()`.
|
6. Читаются данные запроса: `w, err := c.readRequest()`.
|
||||||
7. Проверяется существует ли обработчик и если обработчика нет используется `DefaultServeMux`.
|
7. Проверяется существует ли обработчик и если обработчика нет используется `DefaultServeMux`.
|
||||||
8. Вызывается `ServeHTTP` для обработчика.
|
8. Вызывается `ServeHTTP` для обработчика.
|
||||||
9. Исполняется код в `DefaultServeMux` в нашем случае.
|
9. Исполняется код в `DefaultServeMux` в нашем случае.
|
||||||
10. Выбирается обработчик, соответсвующий URL, и исполняется код обработчика: `mux.handler.ServeHTTP(w, r)`
|
10. Выбирается обработчик, соответсвующий URL, и исполняется код обработчика: `mux.handler.ServeHTTP(w, r)`
|
||||||
11. Как выбирается обработчик:
|
11. Как выбирается обработчик:
|
||||||
A. Проверяются правила маршрутизации по данному URL.
|
A. Проверяются правила маршрутизации по данному URL.
|
||||||
B. Вызывается `ServeHTTP` в данном обработчике, если он есть.
|
B. Вызывается `ServeHTTP` в данном обработчике, если он есть.
|
||||||
C. В противном случае вызывается `ServeHTTP` для `NotFoundHandler`.
|
C. В противном случае вызывается `ServeHTTP` для `NotFoundHandler`.
|
||||||
|
|
||||||
## Ссылки
|
## Ссылки
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# 3.5 Итоги раздела
|
# 3.5 Итоги главы
|
||||||
|
|
||||||
В этой главе мы познакомились с тем как работает HTTP, разрешение имен DNS и как создать простой веб-сервер на языке Go. После этого мы обсудили как Go создает веб-сервер на примере исходных кодов пакета `net/http`.
|
В этой главе мы познакомились с тем как работает HTTP, разрешение имен DNS и как создать простой веб-сервер на языке Go. После этого мы обсудили как Go создает веб-сервер на примере исходных кодов пакета `net/http`.
|
||||||
|
|
||||||
@@ -8,5 +8,5 @@
|
|||||||
|
|
||||||
- [Содержание](preface.md)
|
- [Содержание](preface.md)
|
||||||
- Предыдущий раздел: [Внутренний мир пакета http](03.4.md)
|
- Предыдущий раздел: [Внутренний мир пакета http](03.4.md)
|
||||||
- Следующая глава: [Форма пользователя](04.0.md)
|
- Следующая глава: [Пользовательские формы](04.0.md)
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
- 4.4. [Дублирование отправки](04.4.md)
|
- 4.4. [Дублирование отправки](04.4.md)
|
||||||
- 4.5. [Загрузка файлов](04.5.md)
|
- 4.5. [Загрузка файлов](04.5.md)
|
||||||
- 4.6. [Итоги раздела](04.6.md)
|
- 4.6. [Итоги раздела](04.6.md)
|
||||||
- 5.[Database](05.0.md)
|
- 5.[Базы данных](05.0.md)
|
||||||
- 5.1. [database/sql interface](05.1.md)
|
- 5.1. [database/sql interface](05.1.md)
|
||||||
- 5.2. [MySQL](05.2.md)
|
- 5.2. [MySQL](05.2.md)
|
||||||
- 5.3. [SQLite](05.3.md)
|
- 5.3. [SQLite](05.3.md)
|
||||||
|
|||||||
Reference in New Issue
Block a user