ХайТекСити
Категории каталога
Игры [48]
Устройства [9]
Софт [23]
Гаджеты [10]
Технологии [19]
Моддинг [4]
Защита [6]
Наука и техника [10]
Мобильные устройства [26]
Система [17]
Связь [13]
HTML [16]
Интернет [30]
SSI [4]
XHTML [3]
Компьютерная периферия [6]
Хранение данных [3]
Корпуса [1]
Система охлаждения [1]
Разное [24]
Компьютерная жизнь [2]
Железо [65]
WEB-программирование [20]
Программирование [2]
2D графика [37]
3D графика [10]
Операционные системы [6]
Форма входа
Поиск
Статистика
Rambler's Top100

page counter
Онлайн всего: 3
Гостей: 3
Пользователей: 0

Вторник, 2024-05-21, 06:17:51
Приветствую Гость Гость | RSS
Главная | Регистрация | Вход
ХайТекСити
Главная » ХайТекСити » Интернет

Анонимность в сети Интернет
Немного теории...

Понятие "HTTP".
http (англ. сокр. HyperText Transfer Protocol) - это методика передачи веб-страниц по сети Интернет. Изначально протокол HTTP использовался исключительно для передачи HTML -документов, но в настоящее время посредством HTTP можно передавать любую информацию, в том числе картинки, звук, видео, а также просто абстрактные файлы.
Это прикладной протокол (тот, который работает на уровне приложений), использующий услуги TCP на транспортном уровне (т.е. с установлением соединения и контролем передачи данных). По своему типу, это клиент - серверный протокол, т.е. клиент (Интернет браузер или прокси сервер), запрашивает данные, а сервер (Apache, IIS и д.р.) эти данные отправляет. Стандартный порт сервера – 80, хотя можно использовать любой другой порт, но порты с номером меньше 1024 зарезервированы для стандартных служб. Клиент может открывать соединение на любом порту, но это уже задачи TCP. Запросы и ответы представляют собой текстовые строки (как и другие протоколы прикладного уровня, такие как SMTP, POP и д.р.), признаком конца запроса или ответа служит пустая строка. Я остановлюсь только на HTTP – запросе. Ответ во многом похож на него и самому будет не трудно разобраться.
HTTP – запрос.
Любой запрос предназначен, для получения некоторых данных (локальный файл или результат работы программы). Это может быть просто текстовой документ (просто текст или текст в формате HTML), архив и т.д. Если запрашивается скрипт, то возвращаются данные, полученные в результате выполнения скрипта. Это может быть ссылка на существующий файл или динамически сгенерированные данные. Возвращаемые данные могут быть разные, в зависимости от переменных которые были переданы с запросом. Переменные – это то, что пользователь вводит в поле формы (в дальнейшим, будем тоже называть их данные). В HTML: <FORM …><input type='text' name='user' value='admin'></FORM>. Данные с такой формы будут такие: user=admin. Сами данные должны быть кодированы перед отправкой (кодируются русские буквы и специальные символы…). Теперь о самом запросе. Вот схематическое его представление:
 - 3апрос.
 - Заголовки запроса. 
   - Пустая строка. 
   - Данные согласно запросу.

1. Запрос.
Сначала идет «Запрос». На него отводится одна строка (первая). Схематически он выглядит так: Метод запроса [пробел] путь к файлу [пробел] протокол/версия протокола [конец строки]
На практике выглядит как:
GET /index.php HTTP/1.1
Путь к файлу может быть полным (http://www.ironhorse.ru/index.php) или относительным (/index.php). В нашем примере этот путь относительный (относительно корневой папки) - «/index.php».
«…Протокол/версия протокола…» - протокол HTTP, а версии три (0.8, 1.0, 1.1). На практике используется только две 1.0 и 1.1(расширенная первая версия). Поэтому и получается – «HTTP/1.1».
Разберемся с методами. Метод - это параметр запроса, «говорящий» серверу, что именно хочет клиент. Методов много, в рамках статьи я остановлюсь на трех самым используемых (точнее, разрешенных сервером, например, метод PUT, для создания документа на удаленном сервере, запрещен почти везде). Это методы GET, POST, HEAD. Теперь немного о каждом.
Метод GET «говорит» серверу, что клиент передает ему данные как часть URL и что, клиент в ответ ждет запрашиваемый файл. Сам запрос: GET /index.php?name1=value1&name2=value2 HTTP/1.1
После имени файла ставится «?» и затем следуют данные формата: имя=значение. Параметры имя=значения разделяются знаком «&» - имя1=значение1&имя2=значение2. Данные могут и отсутствовать.
Метод POST «говорит» серверу, что клиент передает ему данные как часть запроса и что, клиент в ответ ждет запрашиваемый файл. Сам запрос: POST /index.php HTTP/1.1
… # тут заголовки запроса, о них ниже.
[Пустая строка]
name1=value1&name2=value2
Точно так же, как и в случаи с GET формат данных name1=value1&name2=value2. Данные могут и отсутствовать. Метод HEAD «говорит» серверу, что клиент передает ему данные как часть URL и что, клиент в ответ НЕ ЖДЕТ запрашиваемый файл. Сам запрос: HEAD /index.php?name1=value1&name2=value2 HTTP/1.1
Сервер возвращает только заголовок ответа, сам документ не передается. Точно так же, как и в случаи с GET формат данных name1=value1&name2=value2. Данные могут и отсутствовать.

2. Заголовки запроса.
Это опции, влияющие на решение сервера, какой именно документ возвращать (язык документа, кодировка, кэшированный или нет, и т.д.). Я перечислю самые основные и нужные опции. Полный список можно взять в специальной литературе или RFC.
На каждый заголовок отводится по одной строке. Сначала пишется имя заголовка потом «:» и потом его значение. Например, «Accept: */*».
Accept – Тип данных, которые согласен принять клиент. Значения перечисляются через запятую (например, text/html, image/gif, image/jpeg и т.п. Строка «*/*» обозначает, что клиент может принять любые данные).
Referer – URL документа, на котором находилась ссылка на запрашиваемый документ (например, открыв http://www.ironhorse.ru/ и нажав ссылку на http://www.ironhorse.ru/ironforum/index.php значение Referer будет «http://www.ironhorse.ru/»).
Accept-Charset – Кодировка, которую предпочитает клиент (например, «Accept-Charset: coi8-r, win - 1251»).
Accept-Language – Язык документа, который может принять клиент (например, «Accept-Language: ru, en»).
Accept-Encoding – Представление данных (например, «Accept-Encoding: compres, gzip» – означает передать сжатые данные, если сервер поддерживает сжатие данных, то они будут переданы сжатыми, если нет, то, как есть).
User-Agent – Название клиента, от которого поступил запрос (например, «Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)»). Он придуман для того, что бы одну и туже информацию по-разному отображать на разных браузерах. Хотя редко где используется.
Host – Имя виртуального хоста. Единственное, обязательный заголовок в HTTP 1.1 . Это понятно, т.к. в настоящее время большинство сайтов хостится на серверах с множеством клиентов. IP один, а сайтов много. Для этого и создан это заголовок. Совпадает с доменным именем сайта.
Connection – Имеет два значения: «Close» и «Keep-Alive». В первом случае после передачи данных клиенту сервер разрывает соединение сразу, во втором ждет несколько секунд следующего запроса ().
Cookie – Заголовок, в котором помещаются «куки». Пары имя=значения разделяются запятыми (например, Cookie: name=admin, password=psswd).
Вот пример типичного HTTP – запроса.
GET /text/doc.html HTTP/1.1
Accept: */*
Accept-Language: ru
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
Host: http://www.ironhorse.ru/
Connection: Keep-Alive
|пустая строка|
Вот вроде и всё, что касается HTTP – запроса. В завершении хочу сказать, что это не-большая часть всего того, что можно рассказать о HTTP в целом и о его запросах в частности, но этого вполне достаточно, что бы понять, что это такое и принять решение, изучать дальше или остановиться на достигнутом.
Проследить за своими запросами, например, можно с помощью программы Odysseus FreeWare. О настройке и работе с данной или подобной программой я расскажу в одной из следующих частей.

Источник: http://www.ironhorse.ru
Категория: Интернет | Добавил: KroX (2007-04-08) | Автор: Steve
Просмотров: 595 | Рейтинг: 0.0/0 |

Всего комментариев: 0
Имя *:
Email *:
Код *:
Copyright OURWORLD © 2024
Сайт управляется системой uCoz