Когда пользователь сайта открывает веб-страницу в окне браузера, браузер генерирует запрос и отсылает его через протокол HTTP веб-серверу. Сервер в свою очередь перенаправляет этот запрос вашему приложению.
HTTP (расшифровывается как Hyper Text Transfer Protocol - "протокол передачи гипертекста") -- это протокол для передачи данных в виде гипертекстовых документов (веб-страниц). HTTP основан на технологии "клиент-сервер": клиент инициирует соединение и отсылает запрос веб-серверу, сервер ждет установки соединения, выполняет необходимые действия и посылает обратно ответ.
Таким образом, главной целью, лежащей в основе любого веб-приложения, является обработка HTTP-запроса и создание HTTP-ответа, обычно содержащего HTML-код запрашиваемый веб-страницы. Ответ посылается сервером браузеру клиента, и браузер отображает веб-страницу на экране монитора.
Ниже представлен типичный HTTP-запрос:
GET http://www.w3schools.com/ HTTP/1.1
Host: www.w3schools.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64)
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US;q=0.8,en;q=0.6
Cookie: __gads=ID=42213729da4df8df:T=1368250765:S=ALNI_MaOAFe3U1T9Syh;
(empty line)
(message body goes here)
Этот HTTP-запрос состоит из трех частей:
В запросе могут отсутствовать заголовки и тело сообщения, но он всегда содержит начальную строку, потому что она указывает на его тип и URL.
Ответ сервера на этот запрос представлен ниже:
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
Set-Cookie: ASPSESSIONIDQQRBACTR=FOCCINICEFAMEKODNKIBFOJP; path=/
X-Powered-By: ASP.NET
Date: Sun, 04 Aug 2013 13:33:59 GMT
Content-Length: 8434
(empty line)
(page content follows)
Как видите, HTTP-ответ имеет почти такой же вид, как и запрос:
Начальная (первая строка) представляет собой версию протокола HTTP и код статуса ответа (200 OK).
Необязательные заголовки (строки 2-10) предоставляют различную мета-информацию об ответе.
Необязательное тело сообщения, следующее за заголовками, должно быть отделено от них пустой строкой. оно, как правило, содержит HTML-код запрашиваемой веб-страницы