Коммуникационная модель Web

Добавление данных

Результатом исполнения скрипта create.php3 является файл test. Каждая запись этого файла состоит из двух типов данных: номера по списку id и соответствующих ему фамилии и инициалов - name.
Операция добавления данных позволяет создавать новые записи и заполнять их поля заданными значениями.
Примитив добавления данных

// *** соединение с БД ***

require "primitive/connect.inc";
// *** добавление данных ***

$result = pg_Exec( $cnct, "INSERT INTO test values(1, 'Иванов')" );

if ( $result )

{

echo "Data insert \n";

}

?>
назовем insert.php3.
Поместите его на сервер и запустите на исполнение Netscape Navigator'ом.
Если данные будут добавлены, то вы увидите сообщение: Data insert

Формы - средство ввода данных

Примитивы, которые мы разрабатываем должны быть универсальны. Другими словами, они должны позволять работать с изменяемыми значениями параметров SQL. В противном случае разрабатывать приложения компоновкой примитивов нельзя.
Рассмотрим в качестве примера реализацию примитива добавления данных с параметром.
В частном случае, когда номер по списку id = 1 и соответствующая ему фамилия - name = "Иванов", он может быть записан так

// *** соединение с БД ***

require "primitive/connect.inc";
// *** добавление данных ***

$result = pg_Exec( $cnct, "INSERT INTO test values(1, 'Иванов')" );

if ( $result )

{

echo "Data insert \n";

}

?>
Параметры примитива можно изменять с помощью html форм.
Начало описания формы обозначают оператором
. Заканчивают форму оператором
. Например,



Рассмотрим основные параметры оператора
.

METHOD - задает метод передачи данных от браузера расширению сервера Web (в нашем случае CGI скрипту). Мы указали метод Get, поскольку объем передаваемых данных невелик. Для передачи больших объемов данных используют метод Post. В этом случае скрипт получает данные, читая их из стандартного потока ввода.
ACTION - указывает путь к CGI скрипту. Когда пользователь нажмет кнопку, предназначенную для отправки заполненной формы, этот скрипт будет запущен.


Ввод данных производят посредством однострочных полей. Их помещают в форму с помощью оператора :

Параметр TYPE определяет тип органа управления, вставленного в форму оператором . Если значение этого параметра равно text, вставляется однострочное поле, предназначенное для редактирования текстовой строки. Параметр NAME определяет имя поля, которое будет посылаться на сервер вместе с содержимым поля. И, наконец, параметр SIZE определяет ширину поля редактирования в символах.


Для отправки вводимых с помощью формы данных на сервер используют кнопки. Их вставляют в форму с помощью оператора :



Значение TYPE, определяющее тип кнопки, здесь равно Submit, поскольку кнопка предназначена для передачи данных из формы на сервер. Надпись на кнопке определяют параметром VALUE.

Совет. Если вы хотите очистить форму, то значение параметра TYPE должно быть равно Reset.


Окончательно, текст html формы для ввода параметра name примитива добавления данных будет иметь вид



















Последнее, что необходимо - это заменить строку примитива

$result = pg_Exec( $cnct, "INSERT INTO test values(1, 'Иванов')" );

на следующую

$result = pg_Exec( $cnct, "INSERT INTO test values(1, '$na')" );

Это позволит добавлять в таблицу БД строки с любыми значениями параметра name.



[<<] | [] | [ >>]

Изменение значений данных

Можно произвести SQL командой UPDATE. Например, так
UPDATE test

SET name = 'Петров'

WHERE name = 'Иванов'
Такие запросы, как правило, образуют конкатенацией (символ ".=" ) и хранят в переменной.
В ниже следующем скрипте это переменная $query.

// *** соединение с БД ***

require "primitive/connect.inc";
// *** изменение значений данных ***

// формирование запроса

$query = "UPDATE test " ;

$query .= "SET name = 'Петров' " ;

$query .= "WHERE name = 'Иванов' " ;
// Исполнение запроса

$result = pg_Exec( $cnct, $query );

if ( $result )

{

echo "Data update \n";

}

?>
Сохраните скрипт под именем udate.php3. Запустите его и убедитесь, что фамилия "Иванов" была изменена на "Петров".

Литература и ресурсы

Relational Databases - http://www.awtrey.com/support/dbeweb/
Stig S. Bakken and all. PHP3 Manual - http://www.devshed.com/Server_Side/PHP/Manual/manfiles/
Дик Брэндон. PHP/FI Version 2.0 /Пер. с англ. Юрия Плетнева - http://www.citforum.ru/internet/php/index.shtml

Литература и ресурсы

Jay Greenspan. Working with Forms - http://www.hotwired.com/webmonkey/99/13/index2a_page4.html

Справочник телефонов

Приложение Web баз данных "справочник телефонов" выбрано из следующих соображений:
по сути, это не сложное приложение;
оно может быть использовано на практике.
Данное приложение позволяет по заданной фамилии или ее части найти в базе данных все похожие фамилии. Затем оно формирует html документ, который содержит список из этих фамилий и соответствующих им номеров телефонов.
Для ввода фамилии или ее части пользователь должен заполнить однострочную форму, которой соответствует следующий htm код














Теперь обсудим текст скрипта view.php3. Структурно он должен состоять из трех частей, которые должны обеспечить:
соединение с БД;
выборку данных из БД на основании совпадения фамилий с введенной в форму комбинацией символов;
динамическое формирование html документа.
Первую из перечисленных задач можно решить примитивом connect.inc.
Вторую задачу SQL командой
SELECT * FROM phone WHERE lower(fio) LIKE '_fio%'
Для решения третьей задачи можно предложить следующий скрипт, который разработан на основе view_n.php3

// *** динамическое формирование html документа ***

$RecCount = pg_NumRows( $result ); // число записей, которые следует отобразить на экране

if (empty( $RecCount )) {
echo "No Data\n"; // нет таких фамилий

}
else {
?>








// *** построчное отображение записей ***

$i = 0;

do {

$arr = pg_Fetch_Array ($result, $i);

?>










} while ($i < $RecCount);
}
?>

Name:   Phone:  





Назовем его примитивом view_m.inc.
Окончательно текст скрипта view.php3, который обеспечивает реализацию "справочника телефонов" следующий:

//*** соединение с БД ***

require "primitive/connect.inc";
// *** выборка данных ***

$result = pg_Exec( $cnct, "SELECT * FROM phone WHERE lower(fio) LIKE '$_fio%'" );
// *** отображение данных ***

require "primitive/view_m.inc";

?>


Результат работы приложения "справочник телефонов" в случае просмотра абонентов, фамилии которых начинаются на "Ив" приведен ниже.
Справочник телефонов


Приступая к работе

Прежде, чем приступить к разработке базовых примитивов, организуем рабочую среду.
Под средой будем понимать физическую реализацию модели распределенных вычислений и средств манипулирования WebDBApp. Средства манипулирования должны обеспечить создание и удаление WebDBApp, а также редактирование его кода.
Графически используемую реализацию модели распределенных вычислений можно представить так
Приступая к работе
Для определенности клиентскую часть реализуем Netscape Navigator.
Серверная часть функционирует под управлением ОС UNIX. В качестве Web-сервера используем Apache. Данные будем хранить в Postgres95 реляционной базе. Назовем эту базу данных - chek.
WebDBApp будем хранить на том же компьютере, что и базу данных. Например, в папке WebDBApp. Для манипуляций приложениями используем FAR менеджер. Можно приложение Windows Notepad.exe (Блокнот).

Для освоения излагаемого материала можно реализовать клиентскую и серверную части модели распределенных вычислений на одном компьютере (локально), например, в среде Windows. Вместо Postgres95 можно использовать ODBC или . Отличия команд PhP этих серверов от PhP Postgres95 можно уточнить . Инсталляция Apache описана в статье [].
[] | [ >>]
Литература и ресурсы
Дмитрий Котеров. Apache + Perl + PHP 3.0 для Windows 95/98: руководство по установке - http://www.webclub.ru/materials/apache_win/index.html

Просмотр данных

Предварительно задают объем просматриваемых данных.
Эту операцию называют "выборка". Ее реализуют SQL командой SELECT. Например, так
SELECT * FROM test
Затем данные, которые выбраны из таблицы, распечатывают построчно. Для этого используют функции, которые сохраняют строки таблиц, как массивы, например,
array pg_Fetch_Array(int result, int row);
Здесь row - номер строки. Их нумеруют, начиная с 0.
Итак, примитив просмотра данных

// *** соединение с БД ***

require "primitive/connect.inc";
// *** просмотр данных ***

$result = pg_Exec( $cnct, "SELECT * FROM test" );

if ( $result )

{

$arr = pg_Fetch_Array ($result, 0);

echo $arr['name'];

}

?>
назовем view.php3.
Поместите его на сервер и запустите на исполнение.
Обратите внимание, что данный скрипт позволяет просмотреть значение поля name только одной записи.
Если в таблице несколько строк, и вы хотите просмотреть результат выборки как таблицу, то используйте следующий скрипт

//*** соединение с БД ***

require "primitive/connect.inc";
// *** просмотр данных ***

$result = pg_Exec( $cnct, "SELECT * FROM test" );

$RecCount = pg_NumRows( $result ); // число записей, которые следует отобразить на экране

?>







$i = 0;

do // отображаем записи построчно

{

$arr = pg_Fetch_Array ($result, $i);

?>








} while ($i < $RecCount);
?>

Name:  





Назовем этот скрипт view_n.php3.
Результат его исполнения такой Просмотр данных

Разработка базовых примитивов

Примитивы можно разделить на две группы: манипулирования таблицами базы данных и самими данными. К первой группе относят:
создание таблиц баз данных;
удаление таблиц из базы данных.
Во вторую группу входят:
добавление данных;
просмотр данных;
изменение значений данных;
удаление записей таблиц.
Любые манипуляции с таблицами или их данными возможны только после соединения с базой данных. Поэтому, прежде, чем перейти к разработке примитивов рассмотрим этот вопрос.

Соединение с базой данных

Для баз данных Postgres95 это делают с помощью функции
int pg_Connect(string host, string port, string options, string tty, string dbname);
Эта функция возвращает идентификатор соединения. Он равен 1, если соединение прошло успешно. В противном случае его значение равно 0.
Сохраните ниже приведенный скрипт в файле connect.php3 и поместите его в папку WebDBApp.

$cnct = pg_Connect( "host=localhost port=5432 dbname=chek user=chek" );

if( !$cnct )

{

// соединения нет

echo "Connect to database failed! Please, consult the system administrator. \n";

exit;

}

else

{

// соединение прошло успешно

echo "Do Something \n";

}

?>
Запустите скрипт на исполнение, для чего воспользуйтесь, например, Netscape Navigator.
Введите в его адресной строке путь к папке WebDBApp, например, так http://ssu.sumy.ua/teach/WebDBApp/connect.php3
Если соединение с базой данных произойдет успешно, то вы увидите следующее сообщение
Соединение с базой данных
Как мы уже отмечали приложения Web баз данных - это сплав PhP и HTML кодов. Как же сервер их различает.
Для указания начала PhP кода используют такую комбинацию символов . Цвет символов серверу безразличен. Этот цвет выбран для того, чтобы в дальнейшем было зрительно легко отличать PhP код от остального текста.
Комментарии выделены зеленым цветом.
Создайте в папке WebDBApp папку primitive и сохраните там примитив соединения с базой данных

$cnct = pg_Connect( "host=localhost port=5432 dbname=chek user=chek" );

if( !$cnct )

{

// соединения нет

echo "Connect to database failed! Please, consult the system administrator. \n";

exit;

}

?>
как connect.inc файл .

Создание таблиц

А теперь нам осталось совсем чуть-чуть, чтобы создать таблицу test
- воспользоваться SQL командой CREATE TABLE. Например, так

//*** соединение с БД ***

require "primitive/connect.inc";
//*** создание таблицы ***

$result = pg_Exec( $cnct, "CREATE TABLE test (id int, name char(20))" );

if ( $result )

{

// таблица создана

echo "Table create \n";

}

?>
Используемая здесь функция
int pg_Exec(int connection, string query)
позволяет переадресовать SQL запрос Postgres95 для исполнения. Ключевое слово require позволяет включить текст примитива connect.inc, который был помещен в папку primitive.
Сохраните этот скрипт под именем create.php3 и запустите его на исполнение.

Удаление таблиц из базы данных

Таблицу удаляют следующей SQL командой
DROP TABLE test;
[<<] | [] | [ >>]

Удаление записей таблиц

Для удаления всех записей из таблицы используют команду SQL вида
DELETE FROM test;
Записи, где значения полей, которые удовлетворяют некоторым условиям, удаляют так:
DELETE FROM test WHERE name='Иванов';

Доступ к базе данных на стороне клиента

Видимо, наиболее мощные средства обеспечения доступа к базам данных на стороне Web-клиента обеспечивает язык Java. Java - это объектно-ориентированный язык программирования, являющийся, по сути дела, "безопасным" подмножеством языка С++. В частности, Java не содержит средств адресной арифметики, не поддерживает механизм множественного наследования и т. д. Поэтому утверждается, что корректность Java-программы можно проверить до ее реального выполнения (это абсолютно недоказанное утверждение). Различают:
язык Java, как таковой, для которого существуют компиляторы в так называемый "мобильный код" (машинно-независимый код, который может интерпретироваться или из которого могут генерироваться машинные коды на разных платформах);
язык JavaScript, который обычно используется для расширения возможностей языка HTML за счет добавления процедурной составляющей;
и программный продукт HotJava, являющийся, по сути, интерпретатором мобильных кодов Java.
Для обеспечения доступа к базам данных на стороне Web-клиента наиболее существенно наличие языка Java. Технология разработки HTML-документа позволяет написать произвольное количество дополнительных Java-программ, откомпилировать их в мобильные коды и поставить ссылки на соответствующие коды в теле HTML-документа. Такие дополнительные Java-программы называются апплетами (Java-applets). Получив доступ к документу, содержащему ссылки на апплеты, клиентская программа просмотра запрашивает у Web-сервера все мобильные коды. Коды могут начать выполняться сразу после размещения в компьютере клиента или быть активизированы с помощью специальных команд.
Доступ к базе данных на стороне клиента
Поскольку апплет представляет собой произвольную Java-программу, то, в частности, он может быть специализирован для работы с внешними базами данных. Более того, система программирования Java включает развитый набор классов, предназначенных для поддержки графического пользовательского интерфейса. Опираясь на использование этих классов, апплет может получить от пользователя информацию, характеризующую его запрос к базе данных, в том же виде, как если бы использовался стандартный механизм форм языка HTML, а может применять какой-либо другой интерфейс.


Для взаимодействия Java-апплета с внешним сервером баз данных разработан специализированный протокол JDBC, который, фактически, сочетает функции шлюзования между интерпретатором мобильных Java-кодов и ODBC, а также включает ODBC.

В заключение сравним достоинства и недостатки двух рассмотренных подходов. Использование CGI-скриптов на стороне Web-сервера позволяет иметь на стороне клиента только сравнительно простые программы просмотра. Вся хитроумная логика работы с базами данных (возможно, с обработкой полученных данных) переходит на сторону Web-сервера. Это легкий способ построения трехзвенной архитектуры приложения. (В последнее время разгрузку клиента от логики приложения называют решением проблемы "толстого" клиента. В данном случае мы можем иметь предельно тонкого клиента при утолщении сервера.) Отрицательным моментом является то, что при необходимости подключения нового CGI-скрипта, вообще говоря, требуется (относительная) модификация кода сервера.

Использование Java-апплетов, вообще говоря, обеспечивает более гибкое решение. Апплет - это часть HTML-документа. Для включения нового апплета нужно всего-навсего перекомпоновать документ. Web-cервер трогать не нужно. С другой стороны, клиент должен быть толще. Что бы там не говорили, клиент должен быть достаточно "толстым", чтобы в приемлемое время справиться с интерпретацией всех апплетов. Но, конечно же, сервер по-прежнему должен быть "толще" клиента.

На самом деле и при применении первого подхода, и при использовании второго остается нерешенной одна организационно-производственная проблема: кто должен проектировать, писать, отлаживать и сопровождать процедурный код? Web-мастера, производящие HTML-документы, обычно считают себя, скорее, дизайнерами нежели программистами. А здесь требуется чисто программистская работа. Иметь же двух мастеров на одном Web-site - это недопустимая роскошь. Придется растить людей, обладающих достаточными эстетическими способностями и являющимися в то же время квалифицированными и ответственными программистами.


Доступ к базе данных на стороне сервера

Механизм реализуется за счет наличия двух средств: включением форм в документ, составленный с использованием языка HTML и использования внешних по отношению к серверу Web программ. Клиентская часть приложения взаимодействует с серверной частью через специфицированный протокол CGI (Common Gateway Interface) или внедренный позже API (Application Program Interface). (Хотя CGI называется "общим интерфейсом шлюзования", по сути дела, это одновременно некоторое подмножество протокола HTTP, и способ его соблюдения при взаимодействии сервера с внешней программой.)
При реализации на основе CGI общая схема реализации доступа к базе данных на стороне Web-сервера выглядит следующим образом:


Доступ к базе данных на стороне сервера Просматривая документ клиент встречает форму, которая предназначена для ввода параметров запроса данных из базы. Клиент заполняет форму и отправляет ее на сервер.
Получив заполненную форму, сервер запускает соответствующую внешнюю программу, передавая ей параметры и получая результаты на основе протокола CGI.
Внешняя программа преобразует запрос, выраженный с помощью заполненной формы, в запрос на языке, понятном серверу баз данных (обычно это язык SQL).
После получения результатов запроса внешняя программа формирует соответствующую виртуальную или реальную HTML-страницу, передает ее серверу и завершает свое выполнение.
Сервер передает сформированную HTML-страницу клиенту, и на этом процедура доступа к базе данных завершается.

На сленге Web-мастеров любая внешняя программа, запускаемая Web-сервером в соответствии со спецификациями CGI, называется CGI-скриптом. CGI-скрипт может быть написан на языке программирования (С, С++, Pascal и т. д.) или на командном языке (языки семейства shell, perl и т. д.). CGI-скрипт, выполняющий роль посредника между Web-сервером и другими видами серверов (например сервером баз данных), называется шлюзом (видимо, более правильно было бы использовать термин CGI-шлюз). Наличие CGI-скриптов на стороне Web-сервера позволяет, в частности, перенести часть логики приложения из клиента на сервер. CGI-шлюзы представляют собой средство для организации трехзвенной (в общем случае, многозвенной) архитектуры клиент-сервер.


В спецификациях CGI предусмотрены следующие способы взаимодействия Web-сервера и CGI-скрипта (по крайней мере в среде ОС Unix):

Первый способ состоит в использовании создаваемых сервером переменных окружения, через которые передается как общая информация, независящая от функциональных особенностей CGI-скрипта (например имя и версия Web-сервера), так и специфические данные, определяющие поведение CGI-скрипта (скажем набор значений, введенных в форму на стороне клиента).

Второй способ заключается в формировании параметров argc и argv, которые передаются функции main CGI-скрипта (как если бы CGI-скриптвызывался командной строкой в интерактивном режиме). Этот способ применяется для реализации ограниченного класса запросов ISINDEX.

Наконец, входные параметры могут передаваться CGI-скрипту через файл стандартного ввода, а CGI-скрипт может передавать Web-серверу результирующие данные через файл стандартного вывода.

Как видно, при использовании CGI вся интерпретация пользовательского запроса производится CGI-скриптом. Скрипт может быть предельно жестким, ориентированным на выполнение запроса к фиксированной таблице фиксированной базы данных, или относительно гибким, способным выполнить произвольный запрос к одной или нескольким таблицам базы данных, идентифицируемой в параметрах клиента.

Что касается API, то для людей, знающих одновременно Unix и операционные системы вообще, ситуация предельно ясна. Запуск независимого "тяжеловесного" процесса стоит немало. Загрузка и выполнение еще одной программы в уже существующем адресном пространстве по сравнению с предыдущем вариантом гораздо дешевле. Нет никаких новых идей. API - это, фактически, дешевый способ (хотя и небезопасный: понятно, почему?) выполнить в адресном пространстве сервера WWW программу, которая соответствует спецификациям на языке HTML (объясняю, почему; никто не захочет впустить в свою квартиру на предмет хотя бы временного жительства незнакомого человека; внешние программы незнакомы серверу). Такая программа должна быть заранее подготовлена и включена в библиотеку, из которой сервер может производить динамическую загрузку (например, такая библиотека может быть разделяемой - shared library). Т. е. смысл не меняется, меняется только реализация.

Курс Разработчик приложений Web баз данных

GET метод является наиболее простым и быстрым методом передачи запросов. Минимум, что должен содержать запрос, который использует GET метод - это имя метода, URL путь, и символ начала новой строки () :
GET URL_path
Полная форма GET запроса должна содержать еще и версию протокола, значения полей HTTP (содержащих информацию о клиенте или самом запросе), как показано ниже:
GET /waite/newbooks/search?keyword=web HTTP/1.0
Accept:text/*; image/jpeg
Host: www.mcp.com:80
If-Modified-Since: Friday, 15-Aug-97 02:12:28 GMT
User-Agent: Mozilla/3.0Gold (Win95; I)

В данном примере, HTTP/1.0 - это версия протокола, а Accept, Host, If-Modified-Since и User-Agent -четыре заголовка полей HTTP, которые передаются вместе с GET запросом.

Контрольный вопрос
Укажите название поля HTTP значение которого позволяет определить хост посетителя HTML страницы.

HTTP методы запроса

HTTP обеспечивает несколько методов запроса. Зачастую используют GET и POST методы, которые поддерживает большинство браузеров.

Инициализация методов запроса браузером

Следующие события всегда заставляют Web браузер посылать запрос:
после щелчка пользователя на ссылке HTML документа. Ссылку создают используя якорь, как показано ниже:
Текст ссылки
после ввода URL в адресной строке браузера;
в результате передачи формы HTML методом GET или POST, как показано ниже:


Использование расширения пути и строки запроса для передачи данных

Вы уже знаете, что запрос состоит из URL_path и полей HTTP заголовка, которые Web браузер создает автоматически при посылке запроса. Единственная часть, которой вы управляете в получающемся запросе - URL_path. Хотя основная цель URL_path - указать расположение запрошенного информационного ресурса, но она не единственная. Реально URL_path состоит из следующих трех частей:
адреса документа;
расширения пути, которое указывают после пути для описания дополнительной информации;
строки запроса, которая следует за знаком "?".
Например,
/calendar/view.exe/sales?fromdate=10/1/99&todate=12/31/99
В этом примере /calendar/view.exe - путь, /sales расширение пути, a fromdate=10/1/99&todate=12/31/99 - строка запроса URL_path. Путь определяет местоположение CGI программы VIEW.EXE, которая выберет среди продаж только те, которые были сделаны в период с 10/1/99 по 12/31/99.
[<< ] | [] | [ >>]

Коммуникационная модель Web

В основе World Wide Web лежит модель связи, состоящая из двух основных элементов - Web клиента и Web сервера. В этой клиент-серверной модели Web клиент (обычно Web браузер) сначала инициализирует соединение с нужным Web сервером и затем посылает запрос. Web сервер принимает запрос обрабатывает его и отправляет результат клиенту.
Схематично взаимодействие клиента с сервером можно изобразить так
Коммуникационная модель Web

Литература и ресурсы

Selena Sol. Introduction to Databases for the Web - http://www.stars.com/Authoring/DB/Intro/
Кузнецов С.Д. Доступ к базам данных с использованием технологии WWW - http://www.citforum.ru/internet/articles/art_5.shtml

POST метод

Метод POST позволяет HTTP запросу нести дополнительные данные наряду с URL путем и полями заголовка, как показано в следующем примере:
POST /cgi-win/wdbic/test/test.exe HTTP/1.0

Accept:text/*; image/jpeg
Host: localhost
If-Modified-Since: Friday, 15-Aug-97 02:12:28 GMT
User-Agent: Mozilla/3.0Gold (Win95; I)
Content-type: application/x-www-form-urlencoded
Content-length: 11

keyword=web
Поля сontent-type и content-length описывают формат и размер дополнительных данных. Эти дополнительные данные обычно использует информационный запрашиваемый ресурс, которым является исполняемая программа (в данном примере это /cgi-win/wdbic/test/test.exe). Их пересылают на Web сервер для обработки исполняемой программой.

Universal Resource Locator

Universal Resource Locator (URL) - текстовая строка, которая уникально идентифицирует информационный ресурс. Другими словами, он определяет адрес искомых данных. Синтаксис URL:
протокол://хост[:порт]/URL_path
Пример URL
http://www.mcp.com:80/waite/newbooks/search?keyword=web
Тип протокола (http) определяет метод связи, который необходим для передачи документа. Кроме http протокола существует ftp (File Transfer Protocol), file (для файлов, хранящихся на локальном компьютере), telnet (для telnet сессии), mailto
(для Internet почты) и news (для Usenet новостей).
Хост (www.mcp.com) - это реальный домен Internet или IP адрес, представляемый комбинацией чисел десятичного формата. Порт (80) – список TCP портов, который используют для установки соединения.
URL_path (/waite/newbooks/search?keyword=web) указывает местоположение запрашиваемой информации на хост сервере.

Web протоколы

Как показано на рисунке, передача данных между Web клиентом и Web сервером на основе трех протоколов связи: TCP/IP, HTTP и HTML. Каждый протокол функционирует в собственном независимом уровне.
Transmission Control Protocol/Internet Protocol (TCP/IP) - протокол, который поддерживают все компьютеры, соединенные с Internet и обеспечивает достоверную передачу данных между компьютерами Internet.
Hypertext Transfer Protocol (HTTP) - стандарт транзакции (общения) между Web клиентом и Web сервером. Другими словами, правил, которые определяют начало и окончание передачи запроса, а так же адреса требуемого документа. Принятый в HTTP метод стандартной адресации документа (universal resource locator - URL) позволяет достичь максимальной эффективности связи за счет минимизации транзакции между сервером и клиентом (сравните с FTP протоколом, где адресацию файлов реализуют в командном режиме).
По сути HTTP превращает Internet (сеть сетей) в Web или WWW (World Wide Web - "Всемирная паутина") - сеть документов.
Hypertext Markup Language (HTML) - стандарт, в соответствии с которым автор разрабатывает документ, чтобы представить информацию Web клиенту. HTML применяют не только для отображения текста, изображений и гиперссылок, но и создания интерактивных Web приложений.
Хотя HTML и HTTP разработаны, чтобы работать на независимых уровнях, HTML присущи некоторые особенности, которые отражают близкую связь с HTTP. Среди этих унаследованных черт, два ярких - использование URL для определения ссылок и поддержка методов запроса.
[] | [ >>]



    Бизнес в интернете: Сайты - Софт - Языки - Дизайн