Наш основной сайт



WEB /

raw

Работа с RAW потоками браузера



Включение слежения
Получение информации
Управление информацией
Управление RAW логом
Изменение информации




Включение слежения

enable_all_streams – включение слежения за всеми потоками браузера
enable_http_stream – включение слежения за http потоком
enable_https_stream – включение слежения за https потоком



Получение информации

get_last_request_url – получить урл запроса
get_last_request_header – получить заголовок запроса

get_last_redirect_url – получить урл переадресации
get_last_redirect_header – получить заголовок переадресации

get_last_response_url – получить урл ответа
get_last_response_header – получить заголовок ответа
get_last_response_buffer – получить буффер ответа

get_last_readed – получить то что пришло с сайта



Управление информацией

set_arrays_count – задать размер списков хранения RAW информации
clear_last_requests_array – очистить список последних запросов
clear_last_responses_array – очистить список последних ответов , переадресаций и прочитанного



Логи

save_server_log_to_window – сохранять информацию приходящую с сервера в окно RAW лога
save_browser_log_to_window – сохранять информацию отдаваемую браузером в окно RAW лога

save_server_log_to_file – сохранять информацию приходящую с сервера в заданный файл
save_browser_log_to_file – сохранять информацию отдаваемую браузером в заданный файл



Изменение информации

set_hook_on_begin_transaction – задать хук (скрипт, обрабатывающий событие) что будет обрабатывать запросы браузера
set_hook_on_response – задать хук (скрипт, обрабатывающий событие) что будет обрабатывать ответы от сайта
set_hook_on_readed – задать хук (скрипт, обрабатывающий событие) который будет изменять данные при приеме в браузер

Дополнительная информация:
======================================================================

При включении рав лога – например командами:
enable_all_streams – включение слежения за всеми потоками браузера
enable_http_stream – включение слежения за http потоком
enable_https_stream – включение слежения за https потоком

в программе заполняются массивы с raw информацией(это запросы браузера и ответы от сайта, т.е то что посылает браузер сайту и то что он от него получает) , на сегодняшний момент эти массивы хранят 100 последних запросов браузера и 100 последних ответов от сайта.Например при переходе на http://www.ya.ru/, нулевым запросом от браузера будет:

http://www.ya.ru/ – запрошенный урл
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: ru
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
– запрошенный заголовок (т.е то что браузер отправил серверу )

Вот эта информация и хранится в массиве запросов (как 0 запрос) и ее можно получить командами :
get_last_request_url – получить урл запроса
get_last_request_header – получить заголовок запроса

А нулевым ответом:
http://www.ya.ru/ – урл, который ответил
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 24 May 2010 10:40:49 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Cache-Control: no-cache,no-store,max-age=0,must-revalidate
Expires: Mon May 24 10:40:49 2010 GMT
Last-Modified: Mon May 24 10:40:49 2010 GMT
Set-Cookie: S=; path=/; expires=Fri, 26-May-2000 10:40:49 GMT
Set-Cookie: S=; domain=.www.ya.ru; path=/; expires=Fri, 26-May-2000 10:40:49 GMT
X-XRDS-Location: http://openid.yandex.ru/server_xrds/
– буфер ответа (информация что пришла от сервера)
“” – урл редиректа (пустой – мы указали точный адрес при переходе)
“” – заголовк редиректа (пустой – мы указали точный адрес)

Вот эта информация и хранится в массиве ответов (как 1 ответ) и ее можно получить командами :
get_last_redirect_url – получить урл переадресации
get_last_redirect_header – получить заголовок переадресации
get_last_response_url – получить урл ответа
get_last_response_header – получить заголовок ответа
get_last_response_buffer – получить буффер ответа

get_last_readed – то что было реально прочитано с сервера

Дальше будут различные запросы, картинок, флэшек, обмен Java скриптов, Аплетов, ActiveX и т.п в зависимости от сложности сайта, и вся эта информация будет поступать и хранится в массивах по принципу последний пришел и занял первое место (0 индекс массива), причем 101 элемент массива будет удален, чтобы не засорять память. Самое приятное в этом что можно узнать чем живет сайт и оттестировать свой сайт на самом низком уровне !

Но самое главное кроме того что вы можете следить за этой информацией вы еще можете вмешиваться в обмен брузера с сайтом посредством команд:
set_hook_on_begin_transaction – задать хук (скрипт, обрабатывающий событие) что будет обрабатывать запросы браузера
set_hook_on_response – задать хук (скрипт, обрабатывающий событие) что будет обрабатывать ответы от сайта
set_hook_on_readed – задать хук (скрипт, обрабатывающий событие) который будет изменять данные при приеме в браузер

Т.е установив хук на запросы браузера (обычный пхп скрипт что принимает на вход строку с этим запросом), вы можете изменить эту строку так как вы хотите, например подменить значения некоторых Java скрипт переменных, акцептов или запретив подгрузку нежелательного контента (флэшек, некоторых картинок и т.п, вообщем то чего вам не надо чтобы запрашивал браузер) чтобы ускорить тестирование и свою работу, те в на сайт пойдет уже ваша строка запроса

Также можно легко запрещать работу с обработку и загрузку заданных урлов:
add_disabled_request_url – добавить запрет на загрузку заданного урла
clear_disabled_request_urls_array – очистить все запрещенные к загрузке адреса

add_disabled_response_url – запрет на ответ на заданный урл
clear_disabled_response_urls_array – очистить все адреса, на которые запрещено посылать ответы

add_replace_rule – добавить правило замены содержимого страницы при загрузке
clear_replace_rules – удалить правила замены содержимого страницы при загрузке

set_additional_request_header – задать дополнительный заголовок дял запросов браузера

Тоже самое, установив хук на ответы браузера, можно модифицировать их так, чтобы перед приемом в браузер у вас было то что вы хотите в нем видеть или не хотите …

Эта часть кончено требует знаний RFC протоколов ну или экспрементирования

Доступно с 4.0.4

=====================================
Объекты    DOM  System  Web  Window
=====================================