cpp

Интерфейс ResponseWriter: ответ веб-сервера

Интерфейс ResponseWriter из пакета net/http описывает методы, с помощью которых можно оправить ответ веб-сервера:

// import "net/http"
type ResponseWriter interface {
   Header() Header
   Write([]byte) (int, error)
   WriteHeader(statusCode int)
}

Метод Header() позволяет добавить заголовки ответа сервера:

// Добавляем заголовок с типом содержимого ответа
rw.Header().Add("Content-Type", "text/html; charset=UTF-8")
// Название сервера
rw.Header().Add("Server", "MyServer 1.0")

Если нужно исключить автоматически добавляемый заголовок, то ему нужно присвоить значение nil. Пример удаления заголовка Date:

rw.Header()["Date"] = nil

Метод Write() является реализацией интерфейса io.Writer, поэтому мы можем использовать функции, принимающие объект этого интерфейса (см. разд. 14.3), например, функцию Fprintln():

fmt.Fprintln(rw, h.String())

Метод WriteHeader() позволяет указать код статуса ответа сервера. Пример указания ошибки 404 (страница не найдена):

rw.WriteHeader(http.StatusNotFound)

Обратите внимание: вызов метода WriteHeader() нужно вставлять после добавления заголовков ответа сервера с помощью метода Header(). В противном случае пользовательские заголовки отправлены не будут. Кроме того, вызов метода WriteHeader() нужно вставлять перед отправкой данных. Если перед первой отправкой данных метод WriteHeader() не был вызван, то он вызывается автоматически со статусом 200. Следовательно, заголовки также должны быть добавлены до первой отправки данных.

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp