PHPbook
.pdf
51
9. РАЗНОЕ
1. Что такое сериализация?
Это процесс перевода какой-либо структуры данных в последовательность битов.
2. А десериализация?
Операция, обратная сериализации, т.е. восстановление начального состояния структуры дан- ных из битовой последовательности.
3. Зачем они нужны?
Сериализация используется для передачи объектов по сети и для сохранения их в файлы. На- пример, нужно создать распределённое приложение, разные части которого должны обмени- ватьсяданнымисосложнойструктурой.Втакомслучаедлятиповданных,которыепредполага- етсяпередавать,пишетсякод,которыйосуществляетсериализациюидесериализацию.Объект заполняется нужными данными, затем вызывается код сериализации, в результате получается, например, XML-документ. Результат сериализации передаётся принимающей стороне, напри- мер, по HTTP. Приложение-получатель создаёт объект того же типа и вызывает код десериали- зации,врезультатеполучаяобъектстемижеданными,чтобыливобъектеприложения-отпра- вителя. По такой схеме работает, например, сериализация объектов через SOAP в Microsoft .NET.
4. Что такое Apache?
Apache HTTP – бесплатный веб-сервер.
5. А mod_rewrite?
Для веб-сервера Apache существует мощный модуль mod_rewrite, который включается в стан- дартный дистрибутив. Данный модуль позволяет выполнять на лету URL преобразования. Механизм преобразования основывается на использовании правил, а правила в свою очередь представляют из себя регулярные выражения.
Модуль mod_rewrite поддерживает неограниченное количество правил и связанных с каждым правилом условий, реализуя действительно гибкий и мощный механизм управления URL. Для получения URL нужного вида могут использоваться разные источники данных, например переменныесервера,переменныеокружения,HTTPзаголовки,времяидажезапросыквнешним базам данных в разных форматах.
МодульоперируетсполнымиURL(включаяpath-info)ивконтекстесервера(httpd.conf)ивкон- тексте каталога (.htaccess) и даже может генерировать части строки запроса в качестве резуль- тата.
52
6. Аббревиатуры SVN и CVS о чем-то говорят?
SVN (Subversion) и CVS (Concurrent Versions System) – это системы управления версиями.
7. А что это за системы такие?
Система управления версиями – это программное обеспечение для облегчения работы с изме- няющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, опре- делять, кто и когда сделал то или иное изменение и многое другое.
8. Существуют ли еще какие-то системы управления версиями?
Да. Git, Mercurial, Bazaar...
9. Что такое сессии? Где хранятся сессии: на стороне клиента или на стороне
сервера?
Сессия(httpsession)–этологическийобъект,которыйпозволяетпередаватьданныемеждупос- ледовательными HTTP запросами от одного пользователя. Сессии создаются в PHP на стороне сервераитамжехранятся.Собственно,сессии,есливдвухсловах–этомеханизм,позволяющий однозначно идентифицировать браузер и создающий для этого браузера файл на сервере, в ко- тором хранятся переменные сеанса.
По возможности лучше не хранить большое количество информации в сессии. Если информа- циянекритичная(например,настройкипользовательскогоинтерфейса),толучшехранитьеев cookies на стороне клиента.
10. Как долго ”живет” сессия?
Времяжизникуки,котораяхранитидентификаторсесиипоумолчаниюсоставляетнольсекунд, т.е. кука храниться до того момента, как браузер будет закрыт.
11. А при открытом браузере?
У томката по дефолту 30 минут, но это можно настроить.
12. Возможно ли как-то продлить время жизни сессии?
Да. Это можно изменить при помощи параметра session.cookie_lifetime в файле php.ini.
PHP,какправило,хранитданныесессиивфайлах.Длятого,чтобынезасорятьфайловуюсистему периодическиосуществляетсяочисткаустаревшихданных,garbagecollection–уборкамусора.В файле php.ini существует параметр session.gc_maxlifetime который указывает время в секундах, по истечению которого все устаревшие данные будут удалены из файловой системы.
Допустим, мы хотим задать время жизни сессии – 3 часа. Для этого в файле php.ini устанавлива- 53 ем следующие параметры:
session.gc_maxlifetime = 10800 session.cookie_lifetime = 10800
13. Зачем нужны сессии?
Дело в том, что веб-сервер не поддерживает постоянного соединения с клиентом, и каждый запрос обрабатывается как новый, безо всякой связи с предыдущими. То есть, нельзя ни отсле- дить запросы от одного и того же посетителя, ни сохранить для него переменные между про- смотрами отдельных страниц. Вот для решения этих двух задач и были изобретены сессии.
14. Как устроены, и как работают сессии?
Для начала надо как-то идентифицировать браузер. Для этого надо выдать ему уникальный идентификатор и попросить передавать его с каждым запросом.
Идентификатор – это обычная переменная. Для PHP по умолчанию ее имя – PHPSESSID. Задача PHP отправить ее браузеру, чтобы тот вернул ее со следующим запросом.
Переменную можно передать только двумя способами: в куках или POST/GET запросом. PHP ис- пользует оба варианта.
За это отвечают две настройки в php.ini:
session.use_cookies - если равно 1, то PHP передает идентификатор в куках, если 0 - то нет. session.use_trans_sid если равно 1, то PHP передает его, добавляя к URL и формам, если 0 - то нет.
15. Поясни разницу между HTTP методами GET и POST.
GET передает данные серверу используя URL, а POST передает данные, используя тело HTTP запроса.
Длина URL’а ограничена 1024 символами, что и будет верхним пределом для данных, которые можно отослать GET’ом. POST может отправлять гораздо большие объемы данных.
Кроме того, передача данных методом POST более безопасна, чем методом GET, так как секрет- ные данные (например пароль) не отображаются напрямую в web-клиенте пользователя (в от- личии от URL, который виден почти всегда).
16. А какие еще есть методы кроме GET и POST и для чего они используются?
GET и POST – это основные методы передачи данных. Есть еще PUT и DELETE, но ими никто не пользуется.
54
17. Что такое стандарты W3C?
Консорциум всемирной паутины (World Wide Web Consortium, W3C) – организация, разрабаты- вающая и внедряющая технологические стандарты для Всемирной паутины.
W3CразрабатываетдляИнтернетаединыепринципыистандарты,называемые“рекомендаци- ями”, которые затем внедряются производителями программ и оборудования. Таким образом достигается совместимость между программными продуктами и аппаратурой различных ком- паний, что делает Всемирную сеть более совершенной, универсальной и удобной.
18. По какому протоколу осуществляется передача данных в сети Интернет?
Стек протоколов TCP/IP – это два протокола нижнего уровня, являющиеся основой связи в сети Интернет. Протокол TCP (Transmission Control Protocol) разбивает передаваемую информацию на порции и нумерует все порции. С помощью протокола IP (Internet Protocol) все части пере- даются получателю. Далее с помощью протокола TCP проверяется, все ли части получены. При получении всех порций TCP располагает их в нужном порядке и собирает в единое целое.
19. Назови наиболее известные протоколы, используемые в сети Интернет?
(Hyper Text Transfer Protocol) – это протокол передачи гипертекста. Протокол HTTP ис- пользуетсяHTTP при пересылке Web-страниц с одного компьютера на другой.
(File Transfer Protocol) – это протокол передачи файлов со специального файлового серве- раFTPна компьютер пользователя. FTP дает возможность абоненту обмениваться двоичными и текстовыми файлами с любым компьютером сети. Установив связь с удаленным компьютером, пользовательможетскопироватьфайлсудаленногокомпьютеранасвойилископироватьфайл со своего компьютера на удаленный.
(PostOfficeProtocol)–этостандартныйпротоколпочтовогосоединения.СерверыPOPобра- батываютPOP входящуюпочту,апротоколPOPпредназначендляобработкизапросовнаполучение почты от клиентских почтовых программ.
(SimpleMailTransferProtocol)–протокол,которыйзадаетнаборправилдляпередачипоч- тыSMTP. Сервер SMTP возвращает либо подтверждение о приеме, либо сообщение об ошибке, либо запрашивает дополнительную информацию.
20. Что такое Document Object Model (DOM) ?
Это не зависящий от платформы и языка программный интерфейс, позволяющий программам и скриптам получить доступ к содержимому HTML и XML-документов, а также изменять содер- жимое, структуру и оформление таких документов.
21. Что такое AJAX и как он работает?
AJAX – это подход к построению интерактивных пользовательских интерфейсов веб-приложе- ний, заключающийся в “фоновом” обмене данными браузера с веб-сервером. В результате, при обновлении данных, веб-страница не перезагружается полностью, и веб-приложения становят- ся более быстрыми и удобными.
AJAX–несамостоятельнаятехнология,аконцепцияиспользованиянесколькихсмежныхтехно- 55 логий. AJAX базируется на двух основных принципах:
1) Использование технологии динамического обращения к серверу “на лету”, без перезагрузки всей страницы полностью, например:
– с использованием XMLHttpRequest (основной объект);
– через динамическое создание дочерних фреймов;
– через динамическое создание тега <script>.
2) Использование DHTML для динамического изменения содержания страницы;
В качестве формата передачи данных обычно используются JSON или XML.
22. Что такое JSON?
Это текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми.
23. А XML?
XML–эторасширяемыйязыкразметки,фактическипредставляющийсобойсводобщихсинтак- сических правил. Текстовый формат, предназначенный для хранения структурированных дан- ных для обмена информацией между программами, а также для создания на его основе более специализированных языков разметки (например, XHTML).
24. Приведи пример XML-документа.
<?xml version=”1.0” encoding=”utf-8”?> <book>
<title>”PHP. Собеседование в вопросах и ответах”</title> <author>Шевченко А.А.</author>
<description>В этой книге собраны наиболее часто встречающиеся вопросы на собеседовании на должность PHP-разработчика</description>
</book>
25. Что такое XML Schema?
XMLSchema–этоязыкописанияструктурыXML-документа.Какбольшинствоязыковописания XML, XML Schema была задумана для определения правил, которым должен подчиняться доку- мент. Но, в отличие от других языков, XML Schema была разработана так, чтобы её можно было использовать в создании программного обеспечения для обработки документов XML.
26. Что такое JSON Schema?
JSONSchema–одинизязыковописанияструктурыJSONдокумента.ИспользуетсинтаксисJSON. JSON Schema – самоописательный язык: при его использовании для обработки данных и описа- ния их допустимости могут использоваться одни и те же инструменты сериализации/десериа- лизации.
56
27. Что такое XMLhttpRequest?
ОбъектXMLHttpRequestдаетвозможностьбраузеруделатьHTTP-запросыксерверубезперезаг- рузкистраницы.НесмотрянасловоXMLвназвании,XMLHttpRequestможетработатьсданными в любом текстовом формате.
28. Что такое API?
API (Application Programming Interface) – это интерфейс программирования приложений, на- бор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.
