====== raw ====== **Каноническая страница:** [[https://humanemulator.net/objects/WEB/raw.php|https://humanemulator.net/objects/WEB/raw.php]] [[objects:start|← Objects]] ---- 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 – получить то что пришло с сайта get_last_request_frame_url – Получить адрес фрэйма URL из коллекции запросов по номеру get_last_request_post_datas – Получить тело запроса типа POST из коллекции запросов по номеру Управление информацией 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 ===================================== set_next_url_for_open_in_new_tab – Задать адрес URL запроса, вызов которого будет отслежен и открыт в новой закладке Браузера