Отговор. Метод за пренасочване
Response.Redirect URL (URL - единен дескриптор на ресурса)
Настроики:
- URL- Параметърът е общ дескриптор на ресурс. Показва кога браузърът трябва да бъде пренасочен.
коментар:
Всяко събитие този методмежду таговете
иуеб страниците ще бъдат игнорирани. Този метод може да се използва само в заглавката на HTML страница. Този метод ще предаде заглавката на браузъра, ако URL параметърът липсва този обектв следната форма:HTTP/1.0 302 URL адрес на преместен обект
Метод Response.End
Край на отговора
коментар:
Ако свойството Response.Buffer е зададено на TRUE, тогава извикването на метода Response.End ще прочисти буфера, изтласквайки данните от него към клиента. Ако не искате да показвате данни на потребителя, трябва да извикате следния метод:
<%
Response.Clear
Response.End
%>
Метод Response.AddHeader
Методът AddHeader добавя HTML заглавка със специфични стойности. Този метод винаги добавя нова заглавка към отговора на клиентския браузър. Този метод не заменя съществуваща заглавка с нова. Добавеното заглавие не може да бъде премахнато.
Този метод се използва само за "напреднали" задачи.
Response.AddHeader име на променлива, стойност
Настроики:
- име на променлива- Името на новите опции за HTML заглавки.
- смисъл- Стойността, която трябва да се зададе да бъде запомнена в заглавката.
бележки:
За да работи методът правилно, името на променливата не трябва да съдържа знака за долно подчертаване (_). Наборът ServerVariables интерпретира долното подчертаване като тире в заглавката. Например, следният скрипт принуждава сървъра да намери параметър от HTML заглавка, наречена MY-HEADER.
<% Requset.ServerVariables("HTTP_MY_HEADER") %>
Тъй като HTTP протоколът изисква всички параметри на заглавката да бъдат предадени преди началото на тялото на HTML страницата, трябва да извикате метода AddHeader във вашия скрипт, преди описанието да започне.
.... Има едно изключение. Ако стойността на свойството Buffer е зададена на true (true), тогава можете да напишете AddHeader във всяка точка на скрипта, но преди първото извикване на метода Flush. В противен случай извикването на метода AddHeader ще доведе до грешка.Следващите два .asp файла демонстрират последната точка.
<% Response.AddHeader "Внимание!", "Текст сообщения об ошибке"%>
вашия текст на страницата
В този пример страницата не е буферирана. Скриптът работи, но AddHeader се извиква преди сървърът да произведе HTML изход на клиента.
<% Response.Buffer = true %>
ето малко информация за вашата страница...<%Response.AddHeader "Внимание!", "сообщение об ошибке"%>
<%Response.Flush%>
<%Response.Write("некий текст")%>
Във втория пример страницата се буферира и в резултат на това сървърът не изпраща текста на клиента, докато самият скрипт не приключи или докато не се срещне методът Flush. Можете да използвате този метод, за да изпратите множество копия на някакъв параметър на заглавката с различни стойности, както при заглавката на WWW-Authenticate.
Метод Response.AppendToLog
Методът AppendToLog добавя ред към края на регистрационния файл на уеб сървъра. Можете да извикате този метод толкова пъти, колкото ви е необходимо. Всеки път, когато методът бъде извикан, низът, който посочите, ще бъде записан във файла с отчет на сървъра.
Стойност Response.AppendToLog
Настроики:
- смисъл- Текст, който да бъде добавен към отчетния файл на уеб сървъра. Този низ не може да съдържа знака запетая (,). Освен това общата дължина на добавения ред не трябва да надвишава 80 знака.
бележки:
За да използвате тази функция, трябва да имате активирана опцията URI заявка в панела „Разширени свойства за регистриране“ за този уеб сървър в IIS.
Метод Response.BinaryWrite
Методът BinaryWrite ви позволява да запишете посочената информация в текущия HTTP изход без преобразуване на знаци. Този метод е полезен за показване на информация без низ, като например двоични данни, изисквани от приложение.
Response.BinaryWrite данни
Настроики:
- данни- Данни, предназначени за HTTP изход.
Ако имате обект, който произвежда масив от байтове, можете да използвате следното извикване на този метод, за да предадете този масив на някакво приложение, работещо на клиентската машина.
<% Set BinGen = Server.CreateObject(My.BinaryGenerator)
Pict = BinGen.MakePicture
Response.BinaryWrite Pict
%>
Отговор. Изчистен метод
Методът Clear изчиства целия буфериран HTML изход. Този метод обаче не изчиства информацията за заглавката от буфера. Можете да използвате този метод за управление на грешки. Този метод обаче ще доведе до грешка, ако свойството Response.Buffer не е истина.
Response.CacheControl свойство
Това свойство отменя стойността по подразбиране. Когато зададете свойството на Public, прокси сървърът може да кешира изхода, генериран от ASP.
Response.CacheControl [= заглавка за контрол на кеша]
Настроики:
- Заглавка за управление на кеша- Тази опция за контрол на заглавието може да бъде публична или частна.
Response.CharSet свойство
Свойството CharSet ви позволява да добавите името на таблицата с кодови символи (например WINDOWS-1251) към HTML заглавката, низа от тип съдържание (тип съдържание).
Response.CharSet codetable_name
Настроики:
- име на кодова таблица- Низ, който определя кодовата таблица за дадена HTML страница. Името на тази кодова таблица ще бъде добавено към заглавката на HTML файла под параметъра "content-type".
За ASP страница, която не използва свойството Response.Charset, параметърът "content-type" в заглавката ще бъде:
тип съдържание: текст/html
Ако ASP файлът съдържа командата
<%Response.Charset("Windows-1251")%>
тогава в заглавката полето тип съдържание ще изглежда така
тип съдържание: текст/html; charset=Windows-1251
коментар:
Тази функция вмъква произволен низ в заглавката и не проверява дали е правилен.
Ако страницата съдържа няколко маркера Response.Charset, тогава всеки следващ маркер ще замени стойността със своя собствена.
Response.ContentType свойство
Свойството ContentType ви позволява да зададете типа (типа) на съдържанието на HTML файла. Ако това свойство не се използва, по подразбиране е text/html.
Response.ContentType [=content_type]
Настроики:
- Тип съдържание- Низ, описващ типа HTML съдържание. Този низ обикновено е от формата "тип/подтип", където типът е основната категория съдържание, а подтипът определя типа съдържание. За получаване пълен списъкподдържани типове - вижте документацията на вашия браузър или спецификацията на HHTP.
Следващият пример илюстрира задаването на типа съдържание на Формат на дефиниция на канал (Push Channels).
<% Response.ContentType = "application/x-cdf" %>
Вторият пример демонстрира задаване на свойството на най-често известните стойности.
<% Response.ContentType = "text/HTML" %>
<% Response.ContentType = "image/GIF" %>
<% Response.ContentType = "image/JPEG" %>
Response.Expires свойство
Свойството Expires определя времето до HTML страницакеширан от браузъра се счита за неизтекъл (период на задържане). Ако потребител поиска кеширана страница от браузър, който не е изтекъл, браузърът я връща директно от своя кеш.
Отговор. Изтича [=номер]
Настроики:
- номер– Времето в минути преди дадена страница да се счита за „просрочена“. Задаване на тази стойност на 0 причини тази страницаведнага става "просрочена".
коментар:
Ако това свойство е зададено повече от веднъж на страница, тогава се използва най-малката стойност.
Response.ExpiresAbsolute свойство
Свойството ExpiresAbsolute посочва часа и датата, след които HTML страница, кеширана от браузъра, се счита за изтекла (изтекла). Ако потребител поиска кеширана страница от браузър, който не е изтекъл, браузърът я връща директно от своя кеш. Ако е посочен час (и е посочена дата), тогава "периодът на задържане" на страницата изтича в полунощ на този ден. Ако не са посочени нито час, нито дата, тогава стойността се присвоява според деня и часа на изпълнение на скрипта.
Response.ExpiresAbsolute [= [дата] [час]]
Настроики:
- датата- Посочва датата на изтичане на "периода на задържане". Форматът на датата трябва да отговаря на стандарта RFC-1123.
- време- Посочва времето, когато страницата изтича "период на задържане". Тази стойност се преобразува във формат GMT (средно време по Гринуич), преди заглавката да бъде изпратена на клиента.
коментар:
Ако това свойство е посочено повече от веднъж на страница, тогава се приема, че времето на изтичане на "периода на задържане" е най-бързото от всички посочени стойности.
<% Response.ExpiresAbsolute = #May 31,1998 13:30:15# %>
Response.IsClientConnected свойство
Това свойство е стойност само за четене, което означава, че не могат да бъдат присвоени стойности на това свойство. Това свойство показва дали клиентът е свързан или не вече е свързан със сървъра, както е дефинирано в последния от Response.Write.
Response.IsClientConnected()
коментар:
Това свойство ви позволява да определите кога потребителят е свързан и кога е изключен от сървъра. Например, продължителността на времето между отговора на сървъра и момента, в който клиентът е направил заявка, дава увереност, че клиентът все още е свързан и има смисъл да продължите да изпълнявате скрипта.
<%
"посмотрим, подключен ли пользователь
If Not Response.IsClientConnected Then
"получаем номер сессии и закрываем сессию
Shutdownid = Session.SessionID
"подготовка к закрытию сессии
Shutdown(Shutdownid)
End If
%>
Response.Pics свойство
Това свойство ви позволява да добавите стойността на полето pics-label към заглавката на отговора.
Response.PICS(PICSLabel)
Настроики
- Етикет за снимки- Низ, който е преобразуван във формат PICS - етикет. Стойността, посочена в този параметър, се добавя към заглавката на отговора в полето PICS.
За ASP файл, включващ:
<% Response.PICS("(PICS-1.1 етикети на " & chr(34) & "1997.01.05T08:15-0500" до "1999.12.31T23:59-0000" оценки (v 0 s 010 n 0))%>
Следващата заглавка ще бъде генерирана
PICS-етикет:(PICS-1.1 етикети на "1997.01.05T08:15-0500" до "1999.12.31.T23:59-0000" рейтинг (v 0 s 0 1 0 n 0))
коментар:
Това свойство ви позволява да вмъквате всякакви редове в заглавката, независимо дали редовете са валидни.
Ако страницата съдържа много тагове, съдържащи Response.PICS, тогава всеки следващ ще замени стойността на предишния.
Response.Status свойство
Това свойство ви позволява да посочите низа на състоянието, върнат от сървъра. Стойностите на състоянието са дефинирани в HTTP спецификацията.
Response.Status = описание_състояние
Настроики
- описание_състояние- Низ, който съдържа както трицифрено число, което показва кода на състоянието, така и кратко описание на този код. Например, 310 Move Permanently.
Следният пример показва настройката на състоянието:
<% Response.Status = "401 Unauthorized" %>
коментар:
Използвайте това свойство, за да промените низа, върнат от сървъра.
За да получите екземпляр на този клас, използвайте извикването на метода wa()->getResponse(), например:
Wa()->getResponse()->getHeader("Content-type")
Методи
обществена функция добавете CSS ($url, $app_id = невярно)
Добавя URL към списъка с CSS файлове. Всички добавени URL адреси на CSS файлове могат да бъдат извлечени в шаблона Smarty с помощта на метода ($wa->css()).
Настроики
- $url
Относителният URL адрес на CSS файла. Ако стойността на параметъра $app_id е посочена, тогава URL адресът на файла трябва да бъде посочен спрямо URL адреса на директорията с файловете на съответното приложение. В противен случай относителният URL адрес трябва да е относителен към директорията за инсталиране на рамката.
- $app_id
Идентификатор на приложението.
Пример
wa()->getResponse()->addCss("css/myapp.css", "myapp"); обществена функция добавете Google Analytics ($str)
Добавя фрагмент на JavaScript за Google Анализ. Кодът на Google Анализ (включително добавения от този метод) е включен в HTML шаблона на сайта с помощта на метода ($wa->headJs()).
Настроики
обществена функция addHeader ($name, $value, $replace = true)
Добавя заглавка, която ще бъде изпратена от сървъра в отговор на потребителска заявка. Всички добавени по този начин заглавки ще бъдат изпратени на потребителя при изпълнение на .
Настроики
Пример
wa()->getResponse()->addHeader("Content-type", "application/json"); обществена функция addJs ($url, $app_id = невярно)
Добавя URL към списъка с файлове на JavaScript. Всички добавени JavaScript URL адреси могат да бъдат извлечени в шаблона Smarty с помощта на метода ($wa->js()).
Настроики
- $url
URL адресът на JavaScript файла. Ако стойността на параметъра $app_id е посочена, тогава URL адресът на файла трябва да бъде посочен спрямо URL адреса на директорията с файловете на съответното приложение. В противен случай относителният URL адрес трябва да е относителен към директорията за инсталиране на рамката.
- $app_id
Идентификатор на приложението.
Пример
wa()->getResponse()->addJs("js/myapp.js", "myapp"); обществена функция getCss ($html = вярно, $strict = невярно)
Връща списък с по-рано добавени връзки към CSS файлове.
Настроики
- $html
Флаг, указващ необходимостта от връщане на HTML кода за свързване на CSS файлове. Ако е посочено false, методът връща масив от URL адресите на такива файлове.
- $строго
Флаг, за да посочите, че форматът XHTML се използва вместо HTML, когато $html е настроен на true .
Пример
wa()->getResponse()->getCss(); обществена функция getHeader ($name = нула)
Връща стойността на заглавката на отговора.
Настроики
Пример
wa()->getResponse()->addHeader("Content-type", "application/json"); wa()->getResponse()->getHeader("Content-type"); Резултат
приложение/json обществена функция getJs ($html = вярно)
Връща списък с препратки към файла с отговори на JavaScript.
Настроики
Пример
wa()->getResponse()->getJs(); обществена функция getMeta ($name = нула)
Връща съдържанието на META данните: заглавие на страницата ("заглавие"), МЕТА тагове, ключови думи ("ключови думи"), описание ("описание").
Настроики
Пример
wa()->getResponse()->getMeta("ключови думи"); обществена функция getStatus()
Връща предварително зададеното състояние на отговора на сървъра.
Пример
wa()->getResponse()->setStatus(200); wa()->getResponse()->getStatus(); Резултат
200
обществена функция getTitle()
Връща заглавието (TITLE) на страницата.
Пример
wa()->getResponse()->setTitle("Моят онлайн магазин"); wa()->getResponse()->getTitle(); Резултат
Моят онлайн магазин обществена функция пренасочване ($url, $code = нула)
Пренасочва потребителя към посочения URL адрес.
Настроики
- $url
URL адресът, към който трябва да бъде пренасочен потребителят.
- $code
Кодът за отговор на сървъра, който трябва да придружава пренасочването.
Пример
wa()->getResponse()->redirect("http://otherdomain.ru/", 301); обществена функция sendHeaders()
Изпраща предварително зададени заглавки.
Пример
wa()->getResponse()->addHeader("Content-type", "application/json"); wa()->getResponse()->sendHeaders(); обществена функция setCookie ($name, $value, $expire = null, $path = null, $domain = "", $secure = false, $http_only = false)
Задава стойността на запис на бисквитка с помощта на функцията setcookie PHP.
Настроики
- $name
ID на записа.
- $value
Стойността на записа.
- $expire
Срок на годност.
- $пътека
Пътят към "поддиректорията" на URI, в който стойността на записа е валидна.
- $domain
Името на домейна, за което е валидна стойността на записа.
- $сигурен
Флаг, показващ, че записът е достъпен само ако стойността се предава чрез HTTPS протокола.
- $http_only
Флаг, който показва, че стойността на записа е достъпна само чрез HTTP протокола и не е достъпна чрез клиентски скриптове (JavaScript).
Пример
wa()->getResponse()->setCookie("code", $code, time() + 30 * 86400, null, "", false, true); обществена функция setMeta ($name, $value = нула)
Задава стойността на МЕТА данните. Тази стойност е налична в шаблоните на Smarty, използвайки метода ($wa->meta()).
Настроики
Пример
wa()->getResponse()->setMeta("ключови думи", $keywords); обществена функция setStatus ($code)
Задава състоянието на отговора на сървъра.
Настроики
Пример
wa()->getResponse()->setStatus(404); обществена функция setTitle ($title)
Задава заглавието (TITLE) на страницата. Съдържанието на заглавието е достъпно в шаблони на Smarty с помощта на метода ($wa->title()).
След като получи и интерпретира съобщение за заявка, сървърът отговаря с HTTP съобщение за отговор:
- Линия на състоянието
- Нула или повече полета за заглавие (Общ|Отговор|Обект), последвано от CRLF
- Празен ред (т.е. ред без нищо пред CRLF), указващ края на полетата на заглавката
- По избор тяло на съобщение
Следващите раздели обясняват всеки един от обектите, използвани в съобщение за HTTP отговор.
Ред за състояние на съобщението
Редът на състоянието се състои от версията на протокола, последвана от цифров код на състоянието и свързаната с него текстова фраза. Елементите са разделени с интервал SP символи.
Ред за състояние = HTTP-версия SP Код на състоянието SP Причина-фраза CRLF HTTP версия
Сървър, поддържащ HTTP версия 1.1, ще върне следната информация за версията:
HTTP-Версия=HTTP/1.1
код на състоянието
Елементът Status-Code е 3-цифрено цяло число, където първата цифра на Status-Code дефинира класа на отговора, а последните две цифри нямат никаква роля за категоризиране. Има 5 стойности за първата цифра:
С.Н. |
Код и описание |
---|
1
|
1xx: Информационен Това означава, че заявката е получена и процесът продължава.
|
2
|
2xx: Успех Това означава, че действието е било успешно прието, разбрано и прието.
|
3
|
3xx: Пренасочване Това означава, че трябва да се предприемат допълнителни действия, за да се завърши заявката.
|
4
|
4xx: Клиентска грешка Това означава, че заявката съдържа неправилен синтаксис или не може да бъде изпълнена.
|
5
|
5xx: Грешка в сървъра Това означава, че сървърът не е успял да изпълни очевидно валидна заявка.
|
HTTP кодовете за състояние са разширяеми и HTTP приложенията не се изискват, за да разберат значението на всички регистрирани кодове на състоянието. Списък с всички кодове на състоянието е даден в отделна глава за справка.
Полета на заглавката на отговора
Ще изучаваме General-header и Entity-header в отделна глава, когато ще научим HTTP заглавни полета. Засега нека проверим какви са полетата на заглавката на отговора.
Полетата на заглавката на отговора позволяват на сървъра да предаде допълнителна информация за отговора, която не може да бъде поставена в реда на състоянието. Тези заглавни полета дават информация за сървъра и за по-нататъшен достъп до ресурса, идентифициран от Request-URI.
-
Прокси удостоверяване
-
WWW-Удостоверяване
Можете да въведете вашите персонализирани полета, в случай че ще напишете свой собствен персонализиран уеб клиент и сървър.
Примери за съобщение за отговор
Сега нека го съберем, за да образуваме HTTP отговор за заявка за извличане на hello.htmстраница от уеб сървъра, работещ на уебсайта
HTTP/1.1 200 OK Дата: пн, 27 юли 2009 г. 12:28:53 GMT Сървър: Apache/2.2.14 (Win32) Последна промяна: сряда, 22 юли 2009 г., 19:15:56 GMT Дължина на съдържанието: 88 съдържание- Тип: text/html Връзка: затворена
Здравей свят!
Следният пример показва съобщение за HTTP отговор, показващо състояние за грешка, когато уеб сървърът не може да намери исканата страница:
HTTP/1.1 404 Not Found Дата: нд, 18 октомври 2012 г. 10:36:20 GMT Сървър: Apache/2.2.14 (Win32) Content-Length: 230 Връзка: затворен тип на съдържанието: text/html; charset=iso-8859-1
404 Страницата не е намерена
не е намерен
Исканият URL адрес /t.html не беше намерен на този сървър.
Следва пример за съобщение за HTTP отговор, показващо състояние на грешка, когато уеб сървърът е срещнал грешна HTTP версия в дадената HTTP заявка:
HTTP/1.1 400 Лоша дата на заявка: нд, 18 октомври 2012 г. 10:36:20 GMT Сървър: Apache/2.2.14 (Win32) Content-Length: 230 Content-Type: text/html; charset=iso-8859-1
400 Лоша заявка
Неправилна заявка
Вашият браузър изпрати заявка, която този сървър не може да разбере.
Редът за заявка съдържаше невалидни знаци след низа на протокола.
Зареждане...
Горна част