Skip to content

Commit 855f398

Browse files
authored
typos fix
1 parent d970f1d commit 855f398

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

ru/03.3.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Handler: логика обработки запроса и генерация о
1414

1515
## механизм работы пакета http
1616

17-
На следующей картинке показано как работает веб-сервер Go/
17+
На следующей картинке показано как работает веб-сервер Go.
1818

1919
![](images/3.3.http.png?raw=true)
2020

@@ -24,7 +24,7 @@ Handler: логика обработки запроса и генерация о
2424
2. Сервер принимает запросы от клиентов.
2525
3. Обрабатывает запросы посредством чтения HTTP заголовков (если используется метод POST, читаются данные из тела запроса) и отправляет их обработчикам. Наконец, сокет возвращает данные клиентам.
2626

27-
Для того чтобы точно узнать как Go работает с Веб - необходимо получить ответ на три вопроса:
27+
Для того чтобы точно узнать, как Go работает с Веб - необходимо получить ответ на три вопроса:
2828

2929
- Как прослушивается порт?
3030
- Как принимаются клиентские соединения?
@@ -68,9 +68,9 @@ Handler: логика обработки запроса и генерация о
6868

6969
Как происходит прием клиентских запросов? В исходном коде мы видим, что происходит вызов метода `srv.Serve(net.Listener)` для управления клиентскими запросами. В теле функции бесконечный цикл `for{}` принимает запросы, создает новое соединение, запускает новую горутину `go c.serve()` и передает в нее данные запроса. Так Go поддерживает высокий параллелизм, за счет того, что все горутины являются независимыми.
7070

71-
Теперь ответим на вопрос как используются конкретные функции для управления запросами? Сначала метод `conn` парсит запрос возвращаемый `c.ReadRequest()`, а затем получет соответсвующий обработчик: `handler := c.server.Handler`, который, в совою очередь, передается в качестве второго аргумента при вызове метода `ListenAndServe`. В нашем сервере мы использовали `nil`, поэтому Go использует обработчик по умолчанию: `handler = DefaultServeMux`. Возникает вопрос - что здесь делает `DefaultServeMux`? DefaultServeMux - это переменная, содержащая указатель на текущий маршрутизатор, который вызывает обработчики для заданных URL-адресов. Разве мы его устанавливали? Ответ - да. Помните в первой строке нашего веб-сервера мы использовали `http.HandleFunc("/", sayhelloName)`. Эта функция регистрирует правила маршрутизации для пути "/". Когда URL-адрес запроса соответствует «/», маршрутизатор вызывает функцию «sayhelloName». DefaultServeMux вызывает ServerHTTP для получения функции обработчика соответсвующего заданному пути.В нашем случае он вызывает «sayhelloName». Наконец, сервер отвечает клиенту.
71+
Теперь ответим на вопрос как используются конкретные функции для управления запросами? Сначала метод `conn` парсит запрос возвращаемый `c.ReadRequest()`, а затем получает соответствующий обработчик: `handler := c.server.Handler`, который, в совою очередь, передается в качестве второго аргумента при вызове метода `ListenAndServe`. В нашем сервере мы использовали `nil`, поэтому Go использует обработчик по умолчанию: `handler = DefaultServeMux`. Возникает вопрос - что здесь делает `DefaultServeMux`? DefaultServeMux - это переменная, содержащая указатель на текущий маршрутизатор, который вызывает обработчики для заданных URL-адресов. Разве мы его устанавливали? Ответ - да. Помните в первой строке нашего веб-сервера мы использовали `http.HandleFunc("/", sayhelloName)`. Эта функция регистрирует правила маршрутизации для пути "/". Когда URL-адрес запроса соответствует «/», маршрутизатор вызывает функцию «sayhelloName». DefaultServeMux вызывает ServerHTTP для получения функции обработчика соответствующего заданному пути. В нашем случае он вызывает «sayhelloName». Наконец, сервер отвечает клиенту.
7272

73-
Подробное оприсание процесса:
73+
Подробное описание процесса:
7474

7575
![](images/3.3.illustrator_Ru.png?raw=true)
7676

0 commit comments

Comments
 (0)