Антиплагиат (1231616), страница 6
Текст из файла (страница 6)
После этого устанавливается коммуникационное соединение.[4]Соединение сокетов очень удобно тем, что связь двунаправленная и параллельная, что позволяет одновременно передаватьинформац ию как от сервера клиенту, так и от клиента серверу.3.4 Выбор способа общ ения меж ду сервером и web-видж етомОдной из важ ных задач является выбор средства передачи данных меж ду Web-клиентом и сервером, которая минимизирует нагрузкуна каналы передачи и избавит сервер от лишней обработки данных.В предыдущ ем разделе рассмотрены сущ ествующ ие способы организац ии такой связи, а такж е их недостатки.С приходом HTML 5 развитие получил новый протокол обмена информац ией, который стал альтернативой стандартного НТТР/HTTPS.Данный протокол получил название WebSocket. Для решения поставленной задачи будем использовать именно его.WebSocket – протокол полнодуплексной связи поверх ТСР-соединения, предназначенный для обмена сообщ ениями меж ду браузероми веб-сервером в реж име реального времени.
Полное описание данного протокола находится в стандарте RFC 6455 [33].Данный протокол исключает постоянный обмен заголовками как в стандарте НТТР, что сущ ественно сниж ает нагрузку на сеть иуменьшает интернет трафик. Основное его преимущ ество – после установки соединения клиента с сервером связь не разрывается,а передача данных происходит в двух направлениях по независимым каналам. При э том, если нет информац ии для передачи,соединение остается открытым.Данные особенности протокола позволяют без особых усилий и хитростей, разрабатывать различные независимые модули длясайтов, информац ия для которых мож ет загруж аться из совершенно других серверов.Полнодуплексное соединение упрощ ает реализац ию таких систем как чатов, онлайн игр, обмена медиаданными и тому подобное.Проц едура установки соединения называется «рукопож атием».
При успешном соединении начинается полнодуплекный обмен данными. Данные передаются строго в определенном формате согласно кадру (фрейму) стандарта RFC 6455.В общ ем виде фрейм представлен на рисунке 12.http://dvgups.antiplagiat.ru/ReportPage.aspx?docId=427.24088421&repNumb=113/2320.06.2016АнтиплагиатРисунок 12 – Фрейм WebSoketОбозначения флагов фрейма протокола WebSocket представлены в таблиц е 2.Таблиц а 2 – Обозначение полей и флагов кадра WebSocketНазваниеРазмерЗначениеFIN1 битФлаг фрагментац ии сообщ ения. У всех фреймов установлен в 0, кроме последнего (установлен в 1). Сообщ ение, состоящ ее изодного фрагмента, имеет флаг 1.RSV11 битВ стандартном WebSocket равны 0.
Предназначены для расширений протокола. РасширениеRSV21 битПродолж ение таблиц ы 2НазваниеРазмерЗначениеRSV31 битмож ет записать в э ти биты свои значения.Opcode4 битаТип сообщ енияMask1 битФлаг маскированного сообщ енияPayload len (PL)7 битДлина сообщ ения, если оно не превышает 125 символовEPL2 байтаДлина сообщ ения, если PL=126.EPL con6 байтЕсли PL=127, то длина сообщ ения – э то EPL+ EPL conMask Key4 байтаКлюч маскиP–Передаваемые данныеОпкод задаёт тип фрейма, который позволяет интерпретировать находящ иеся в нём данные. Возмож ные значения:– 0x1 – текстовые данные;– 0x2 – двоичные данные;– 0x3-0x7 – зарезервированы для будущ их фреймов с данными;– 0x8 – закрытие соединения э тим фреймом;– 0x9 – PING (запрос сервера на проверку отклика от клиента);– 0хА – PONG (ответ клинта на запрос PING сервера);– 0x-0x F – зарезервированы для будущ их управляющ их фреймов;– 0x0 – фрейм-продолж ение для фрагментированного сообщ ения.
Он интерпретируется, исходя из ближ айшего предыдущ егоненулевого типа.Если значение поле «Длина тела» леж ит в интервале 0-125, то оно обозначает длину тела. Если 126, то следующ ие 2 байтасодерж ат длину тела в 16-битном формате. Если 127, то следующ ие 8 байт содерж ащ ее длину в 64-битном формате. Такая схемаиспользуется, чтобы уменьшить накладные расходы: для сообщ ений менее 126 байт хранение длины потребует всего 7 битов, длябольших (до 65536) – 2 байта, ну а для ещ ё больших 8 байт. 8 байт достаточно для того чтобы передать около 2305 ПБайт (2,3Эксабайта) данных.Замечательным достоинством данной системы является возмож ность фрагментац ии данных.
Фрагментац ия используется дляпередачи информац ии большого размера (различные файлы: программы, видео, аудиоданные и прочее), а такж е при длительныхвыборках из базы данных, т.е. если сервер нашел некоторую информац ию по запросу пользователя он мож ет не дож идаясьокончания поиска отправить результаты клиенту. Для фрагментирования данных необходимо:– у всех фрагментированных фреймов, кроме последнего, установить бит FIN=0;– опкод указывается только у первого фрагмента, у остальных устанавливается в 0x0.В современных версиях браузеров, реализац ия WebSockets уж е внесена в функц ионал, поэ тому программирование на сторонеклиента минимальна и сосредоточена только на самых индивидуальных подходах.Все сообщ ения исходящ ие из браузера перед отправкой проходят проц едуру маскировки случайным ключом:– каж дому байту сообщ ения ставится в соответсвие один из четырех байтов маски (по очереди, если байты маски закончились, тобайты берутся с начала);– проводится меж ду байтами маски и сообщ ения операц ия XOR (взятие по модулю 2);– новые байты сообщ ения записываются как результат данных во фрейм.Демаскировка производится таким ж е методом на стороне сервера.
Сервер при отправке не маскирует сообщ ения. При общ енииhttp://dvgups.antiplagiat.ru/ReportPage.aspx?docId=427.24088421&repNumb=114/2320.06.2016Антиплагиатдвух клиентов сообщ ения мож но и не маскировать, для э того необходимо вручную устанавливать бит маски в 0.
Но даннуюоперац ию следует проводить только в том случае, если оба клиента доверяют друг другу, так как в противном случае появляетсяуязвимость в виде атаки «Отравленный кэ ш» [34].3.5 Выбор системыуправления базами данныхБаза данных – набор сведений, хранящихся некоторым упорядоченным способом.Система управления базами данных (СУБД) – это совокупность языковых и программных средств, которая осуществляетдоступ к данным, позволяет их создавать, менять и удалять, обеспечивает безопасность данных и прочее. В общем СУБД –это система, позволяющая создавать базы данных и манипулировать сведениями из них [35].
А осуществляет этот доступ кданным СУБД посредством специального языка – SQL.SQL – язык структурированных запросов, основной задачей которого является предоставление простого способа считыванияи записи информации в базу данных [36].[14]На данный момент широкое распространение получили следующ ие СУБД:–MySQL–этосамаяраспространеннаяполноценнаясервернаяСУБД.MySQLоченьраспространяемая СУБД, которая успешно работает с различными сайтами и веб приложениями.функциональная,свободно[1]Основной недостаток – необходим сервер MySQL для работы э того типа СУБД [37];– PostgreSQL является профессиональнойСУБД. Она[2]свободнораспространяемая и максимально соответствует стандартам SQL. От других СУБД PostgreSQLотличается поддержкой востребованного объектно-ориентированного и/или реляционного подхода к базам данных.[1]Основные недостатки данной СУБД – э то медленное чтение при простых операц иях и слож ная настройка системы [38];–SQLite – легко встраиваемая в приложения база данных.[1]Таккак это[2]системабазируется на файлах,[1]тоонапредоставляет довольно широкий набор инструментов для работы с ней, по сравнению с сетевыми СУБД.
При работе с этойСУБД обращения происходят напрямую к файлам (в эти файлах хранятся данные), вместо портов и сокетов в сетевых СУБД.Именно поэтому SQLite очень быстая, а также мощная благодаря технологиям обслуживающих библиотек.[2]Система управления базами данных SQLite имеет ряд преимущ еств:–файловая структура – вся база данных состоит из одного файла, поэтому её очень легко переносить на разные машины;– используемые стандарты – несмотря на простоту СУБД, она использует SQL.
Некоторые особенности опущенны (RIGHTOUTER JOIN или FOR EACH STATEMENT), но основные все-таки поддерживаются;–[2]отличнаяпри разработке и тестировании – в процессе разработки приложений часто появляется необходимостьмасштабирования. SQLite предлагает всё что необходимо для этих целей, так как состоит всего из одного файла ибиблиотеки написанной на языке C.[1]Такж е данная СУБД имеет недостатки:–отсутствие системы пользователей. Более крупные СУБД включают в свой состав системы управления правами доступапользователей.[2]Поэ тому если необходимо разграничение прав доступа к информац ии, её необходимо реализовывать в прилож ении;– отсутствие возмож ности увеличения производительности. Все операц ии в не зависимости от того, слож ные они или простые,требуют одно и тож е количество времени навыполнение [39].Исходя из достоинст и недостатков СУБД SQLite, данная система применяется при:– разработке встроенных прилож ений.
Отсутствие необходимости в сервере, позволяет легко переносить прилож ения на различныесреды исполнения, что облегчает разработку, например, однопользовательских прилож ений, мобильных прилож ения или игр;– прямомдоступ к диску. При необходимости напрямую обращаться к дискупоявляется выигрыш в функционале и простотеиспользования SQL языка;– тестирование.