Собеседование по Java EE — WEB (вопросы и ответы)
Общие вопросы и ответы по web в разделе Java Enterprise Edition.
к списку вопросов раздела JEE
Вопросы
1. Что такое www?
2. Что такое w3c?
3. Что такое TCP/IP?
4. Что такое ftp?
5. Чем отличаются http и https?
6. Что такое протокол передачи данных, какие вы знаете?
7. Что такое web server?
8. Что такое web приложение?
9. Что такое application server?
10. Чем отличаются web server и application server?
11. Какие методы передачи данных вы знаете?
12. Чем отличаются методы get и post?
13. Что такое html?
14. Что такое xml?
15. Что такое css?
16. Что такое MIME type?
17. Что такое cookies?
18. Что такое сессия?
19. Дайте определение понятиям “авторизация” и “аутентификация”, в чем их различия?
20. Что такое Ajax? Как принципиально устроена эта технология?
21. Что такое ORM, как это перевести и как это должно работать?
Ответы
1. Что такое www?
Всемирная паутина (англ. World Wide Web) — распределённая система, предоставляющая доступ к связанным между собой документам, расположенным на различных компьютерах, подключённых к Интернету. Для обозначения Всемирной паутины также используют слово веб (англ. web «паутина») и аббревиатуру WWW.
Всемирную паутину образуют сотни миллионов веб-серверов. Большинство ресурсов Всемирной паутины основаны на технологии гипертекста. Гипертекстовые документы, размещаемые во Всемирной паутине, называются веб-страницами. Несколько веб-страниц, объединённых общей темой, дизайном, а также связанных между собой ссылками и обычно находящихся на одном и том же веб-сервере, называются веб-сайтом. Для загрузки и просмотра веб-страниц используются специальные программы — браузеры (англ. browser).
2. Что такое w3c?
Консорциум Всемирной паутины (англ. World Wide Web Consortium, W3C) — организация, разрабатывающая и внедряющая технологические стандарты для Всемирной паутины. Консорциум возглавляет сэр Тимоти Джон Бернерс-Ли, автор множества разработок в области информационных технологий.
3. Что такое TCP/IP?
Стек протоколов TCP/IP — набор сетевых протоколов передачи данных, используемых в сетях, включая сеть Интернет. Название TCP/IP происходит из двух наиважнейших протоколов семейства — Transmission Control Protocol (TCP) и Internet Protocol (IP), которые были разработаны и описаны первыми в данном стандарте.
Стек протоколов TCP/IP включает в себя четыре уровня:
- прикладной уровень (application layer),
- транспортный уровень (transport layer),
- сетевой уровень (Internet layer),
- канальный уровень (link layer).
4. Что такое ftp?
FTP (англ. File Transfer Protocol — протокол передачи файлов) — стандартный протокол, предназначенный для передачи файлов по TCP-сетям (например, Интернет). Использует 21-й порт. FTP часто используется для загрузки сетевых страниц и других документов с частного устройства разработки на открытые сервера хостинга.
Протокол построен на архитектуре «клиент-сервер» и использует разные сетевые соединения для передачи команд и данных между клиентом и сервером. Пользователи FTP могут пройти аутентификацию, передавая логин и пароль открытым текстом, или же, если это разрешено на сервере, они могут подключиться анонимно. Можно использовать протокол SSH для безопасной передачи, скрывающей (шифрующей) логин и пароль, а также шифрующей содержимое.
5. Чем отличаются http и https?
HTTP (англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — протокол прикладного уровня передачи данных (изначально — в виде гипертекстовых документов в формате HTML, в настоящий момент используется для передачи произвольных данных). Основой HTTP является технология «клиент-сервер», то есть предполагается существование потребителей (клиентов), которые инициируют соединение и посылают запрос, и поставщиков (серверов), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.
HTTPS (аббр. от англ. HyperText Transfer Protocol Secure) — расширение протокола HTTP, поддерживающее шифрование. Данные, передаваемые по протоколу HTTPS, «упаковываются» в криптографический протокол SSL или TLS. В отличие от HTTP, для HTTPS по умолчанию используется TCP-порт 443.
HTTPS – не самостоятельный протокол передачи данных, а HTTP с надстройкой шифрования. В этом ключевое и единственное отличие.
- HTTP – непосредственно протокол передачи данных, HTTPS – расширение этого протокола.
- HTTPS используется для защищенного посредством шифрования обмена данными.
- HTTPS применяется в том числе и для авторизации на серверах, требующих повышенного внимания к безопасности данных.
- HTTP работает с портом 80, HTTPS – с портом 443.
6. Что такое протокол передачи данных, какие вы знаете?
Протокол передачи данных — набор соглашений интерфейса логического уровня, которые определяют обмен данными между различными программами.
Примеры сетевых протоколов
TCP/IP — набор протоколов передачи данных, получивший название от двух принадлежащих ему протоколов: TCP (Transmission Control Protocol) и IP (Internet Protocol)
Наиболее известные протоколы, используемые в сети Интернет:
HTTP (Hyper Text Transfer Protocol) — это протокол передачи гипертекста. Протокол HTTP используется при пересылке Web-страниц между компьютерами, подключенными к одной сети.
FTP (File Transfer Protocol) — это протокол передачи файлов со специального файлового сервера на компьютер пользователя. FTP дает возможность абоненту обмениваться двоичными и текстовыми файлами с любым компьютером сети. Установив связь с удаленным компьютером, пользователь может скопировать файл с удаленного компьютера на свой или скопировать файл со своего компьютера на удаленный.
POP (Post Office Protocol) — это стандартный протокол почтового соединения. Серверы POP обрабатывают входящую почту, а протокол POP предназначен для обработки запросов на получение почты от клиентских почтовых программ.
SMTP (Simple Mail Transfer Protocol) — протокол, который задает набор правил для передачи почты. Сервер SMTP возвращает либо подтверждение о приеме, либо сообщение об ошибке, либо запрашивает дополнительную информацию.
TELNET — это протокол удаленного доступа. TELNET дает возможность абоненту работать на любой ЭВМ находящейся с ним в одной сети, как на своей собственной, то есть запускать программы, менять режим работы и так далее. На практике возможности ограничиваются тем уровнем доступа, который задан администратором удаленной машины.
7. Что такое web server?
Веб-сервер — сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы, как правило, вместе с HTML-страницей, изображением, файлом, медиа-потоком или другими данными.
Веб-сервером называют как программное обеспечение, выполняющее функции веб-сервера, так и непосредственно компьютер (см.: Сервер (аппаратное обеспечение)), на котором это программное обеспечение работает.
8. Что такое web приложение?
Веб-приложение — клиент-серверное приложение, в котором клиентом выступает браузер, а сервером — веб-сервер. Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, обмен информацией происходит по сети.
9. Что такое application server?
Сервер приложений (англ. application server) — это программная платформа (фреймворк), предназначенная для эффективного исполнения процедур (программ, скриптов), на которых построены приложения. Сервер приложений действует как набор компонентов, доступных разработчику программного обеспечения через API (Интерфейс прикладного программирования), определённый самой платформой.
Для веб-приложений основная задача компонентов сервера — обеспечивать создание динамических страниц. Однако современные серверы приложений включают в себя и поддержку кластеризации, повышенную отказоустойчивость, балансировку нагрузки, позволяя таким образом разработчикам сфокусироваться только на реализации бизнес-логики.
10. Чем отличаются web server и application server?
Сервер приложений (англ. application server) — сервер, исполняющий некоторые прикладные программы. Сервер-приложений — объект, который обрабатывает запросы, связанные с приложениями, точнее для выполнения прикладных процессов (выборка данных, поиск данных, работа с терминалами). По идее эта технология изначально вообще не была связана с Web’om, однако, сейчас чаще говорят сервер web приложений. Практически используется для работы с базами данных.
Веб-сервер — это сервер, принимающий HTTP-запросы от клиентов, обычно веб-браузеров, и выдающий им HTTP-ответы. Web-сервер — объект, который обрабатывает запросы, в частности http-запросы. Браузер в данном случае клиент, который делает запросы (POST, GET).
11. Какие методы передачи данных вы знаете?
Основными являются методы POST и GET.
12. Чем отличаются методы get и post?
Метод GET.
Метод GET удобен тем, что прост в эксплуатации. Но у него есть недостатки. Во-первых, методом GET нельзя передавать большие объемы информации, потому что данные, передаваемые этим методом входят в состав URL, длина которого ограничена. Так как данные, передаваемые методом GET входят в состав URL документа, их может подсмотреть любой желающий. У этого есть преимущества и недостатки. Преимущество состоит в том, что можно послать ссылку вместе с данными другу. Недостаток в том, что в строке браузера отображается и ваш, только что введенный пароль. Это одна из причин, почему данные, представляющие ценность, всегда нужно передавать методом POST.
Метод POST.
Как и метод GET, метод POST служит для передачи данных на сервер. Однако, данные, переданные таким образом, идут не в URL документа, а в теле запроса, после заголовков. Эти данные могут быть восприняты CGI-программой.
Когда данные отправляются методом POST, серверу приходит что-то вроде:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
POST lines.pl HTTP/1.1 Accept: */* Referer: http://example.com/example.html Accept-Language: ru Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) Host: example.com Content-Length: 106 Connection: Keep-Alive Cache-Control: no-cache line=%E4%E0%ED%ED%FB%E5+%F4%EE%F0%EC%FB%2C %EF%E5%F0%E5%E4%E0%E2%E0%E5%EC%FB%E5+%EC%E5%F2%EE%E4%EE%EC+POST |
Плюсы метода POST очевидны: можно передавать неограниченные объемы информации, причем, никто не увидит эту информацию после того, как вы ее отправили (имеется ввиду, в строке браузера).
Но есть и недостатки:
- Медленнее, чем GET, так как анализируются заголовки и тело запроса.
- Страницы, сгенерированные как результат запроса POST, нельзя добавить в закладки (СЕО-недружелюбен)
- Кроме того, если необходимо «протащить» данные через несколько форм или страниц, то это вызовет дополнительные трудности.
13. Что такое html?
HTML – это язык разметки. Вы используете HTML для разметки текстового документа, точно так же, как это делает редактор при помощи жирного красного карандаша. Эти пометки служат для определения формата (или стиля), который будет использован при выводе текста на экран монитора.
14. Что такое xml?
XML, или Язык Расширяемой Маркировки — eXtensible Markup Language, — спроектирован для того, чтобы предоставить Web-разработчикам возможность определения содержания более сложных документов, причем с более корректным “отображением данных”, нежели ранее. XML разрабатывался как язык с простым формальным синтаксисом, удобный для создания и обработки документов программам и одновременно удобный для чтения и создания документов человеком, с подчёркиванием нацеленности на использование в Интернете. Язык называется расширяемым, поскольку он не фиксирует разметку, используемую в документах: разработчик волен создать разметку в соответствии с потребностями к конкретной области, будучи ограниченным лишь синтаксическими правилами языка.
15. Что такое css?
CSS (Cascading Style Sheets — каскадные таблицы стилей) – одна из базовых технологий в современном Интернете. Нечасто можно встретить сайт, свёрстанный без применения CSS. CSS-код – это список инструкций для браузера, – как и где отображать элементы веб-страницы, написанный особым образом.
16. Что такое MIME type?
MIME (Multipurpose Internet Mail Extensions, многоцелевые расширения интернет-почты) — стандарт Интернет, является частью протокола HTTP. Задача MIME это идентификация типа содержимого документа по его заголовку. К примеру, текстовый файл имеет тип text/plain, а HTML-файл — text/html. Отправка заголовка обычно происходит на основе расширения файла веб-сервером.
Internet Media Types — типы данных, которые могут быть переданы посредством сети интернет с применением стандарта MIME. Ниже приведен список MIME-заголовков и расширений файлов.
Согласно RFC 2045, RFC 2046, RFC 4288, RFC 4289 и RFC 4855[2] выделяются следующие базовые типы передаваемых данных:application, audio, example, image, message, model, multipart, text, video.
17. Что такое cookies?
Куки (от англ. cookie — печенье) — небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя. Веб-клиент (обычно веб-браузер) всякий раз при попытке открыть страницу соответствующего сайта пересылает этот фрагмент данных веб-серверу в составе HTTP-запроса. Применяется для сохранения данных на стороне пользователя, на практике обычно используется для:
аутентификации пользователя;
хранения персональных предпочтений и настроек пользователя;
отслеживания состояния сеанса[en] доступа пользователя;
ведения статистики о пользователях.
18. Что такое сессия?
Сессия (от англ. session) – промежуток времени между первым и последним запросами, которые пользователь отправляет со своего устройства (компьютера, телефона) к серверу сайта. Во время одной сессии посетитель совершает какие-либо активные действия: переходит по ссылкам, заполняет формы, скачивает данные – вся подобная информация записывается и хранится в так называемом лог-файле сайта. Завершается сессия в случае, если со стороны пользователя не поступало запросов в течение определенного промежутка времени или же при обрыве связи.
19. Дайте определение понятиям “авторизация” и “аутентификация”, в чем их различия?
Авторизация (англ. authorization — разрешение, уполномочивание) — предоставление определённому лицу или группе лиц прав на выполнение определённых действий; а также процесс проверки (подтверждения) данных прав при попытке выполнения этих действий. Часто можно услышать выражение, что какой-то человек «авторизован» для выполнения данной операции — это значит, что он имеет на неё право.
Аутентификация — процедура проверки подлинности, например:
- проверка подлинности пользователя путём сравнения введённого им логина и пароля, сохранённым в базе данных пользователей;
- подтверждение подлинности электронного письма путём проверки цифровой подписи письма по открытому ключу отправителя;
- проверка контрольной суммы файла на соответствие сумме, заявленной автором этого файла.
Авторизацию не следует путать с аутентификацией: аутентификация — это процедура проверки легальности пользователя или данных, например, проверки соответствия введённого пользователем пароля к учётной записи паролю в базе данных, или проверка цифровой подписи письма по ключу шифрования, или проверка контрольной суммы файла на соответствие заявленной автором этого файла. Авторизация же производит контроль доступа легальных пользователей к ресурсам системы после успешного прохождения ими аутентификации. Зачастую процедуры аутентификации и авторизации совмещаются.
20. Что такое Ajax? Как принципиально устроена эта технология?
AJAX — это аббревиатура, которая означает Asynchronous Javascript and XML. При использовании AJAX нет необходимости обновлять каждый раз всю страницу, так как обновляется только ее конкретная часть. Достоинства AJAX:
- Возможность создания удобного Web-интерфейса
- Активное взаимодействие с пользователем
- Частичная перезагрузка страницы, вместо полной
- Удобство использования
AJAX использует два метода работы с веб-страницей: изменение Web-страницы не перезагружая её, и динамическое обращение к серверу. Второе может осуществляться несколькими способами, в частности, XMLHttpRequest, о чем мы и будем говорить, и использование техники скрытого фрейма. Для того, чтобы осуществлять обмен данными, на странице должен быть создан объект XMLHttpRequest, который является своеобразным посредником между браузером пользователя и сервером. С помощью XMLHttpRequest можно отправить запрос на сервер, а также получить ответ в виде различного рода данных.
21. Что такое ORM, как это перевести и как это должно работать?
ORM (англ. Object-Relational Mapping, рус. объектно-реляционное отображение) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». Существуют как проприетарные, так и свободные реализации этой технологии.