Основы Web
- Что такое WWW?
- Что такое W3C?
- Что такое HTTP и HTTPS? Чем они отличаются?
- Чем отличаются методы HTTP/1.1 и HTTP/2?
- Какие серии кодов состояния есть в HTTP?
- Чем отличаются методы GET и POST?
- Чем отличаются методы POST, PUT и PATCH?
- Что такое MIME тип?
- Что такое Web service?
- Что такое Web server?
- Что такое Web application?
- Что такое Application server?
- Чем отличаются Web server и Application server?
- Что такое WebSocket?
- Что такое cookies?
- Что такое «сессия»?
Что такое WWW?
WWW, World Wide Web (Всемирная паутина) — распределённая система, предоставляющая доступ к связанным между собой документам, расположенным на различных компьютерах, подключённых к Интернету. Для обозначения этого термина также используют слово web.
Что такое W3C?
W3C, World Wide Web Consortium (Консорциум Всемирной паутины) — организация, разрабатывающая и внедряющая технологические стандарты для WWW.
W3C разрабатывает для Интернета единые принципы и стандарты, называемые «рекомендациями» (W3C Recommendations), которые затем внедряются производителями программ и оборудования. Таким образом достигается совместимость между программными продуктами и аппаратурой различных компаний.
Что такое HTTP и HTTPS? Чем они отличаются?
HTTP, HyperText Transfer Protocol (Протокол передачи гипертекста) — протокол прикладного уровня передачи данных.
Основой HTTP является технология «клиент-сервер»:
- Потребители (клиенты), которые инициируют соединение и посылают запрос;
- Поставщики (серверы), которые ожидают соединения для получения запроса, производят необходимые действия и возвращают обратно сообщение с результатом.
Для идентификации ресурсов HTTP использует глобальные URI.
HTTP не сохраняет своего состояния. Это означает отсутствие сохранения промежуточного состояния между парами «запрос-ответ».
Структура протокола:
- Стартовая строка (starting line) — определяет тип сообщения;
- Заголовки (headers) — характеризуют тело сообщения, параметры передачи и прочие сведения;
- Тело сообщения (message body) — непосредственно данные сообщения. Обязательно должно отделяться от заголовков пустой строкой.
Заголовки и тело сообщения могут отсутствовать, но стартовая строка является обязательным элементом, так как указывает на тип запроса/ответа.
HTTPS, HyperText Transfer Protocol Secure — расширение протокола HTTP, поддерживающее шифрование. Данные, передаваемые по протоколу HTTPS, «упаковываются» в криптографический протокол SSL или TLS, что обеспечивает защиту от атак, основанных на прослушивании сетевого соединения (при условии, что будут использоваться шифрующие средства и сертификат сервера проверен и ему доверяют).
Различия HTTP и HTTPS:
-
HTTPS является расширением HTTP.
-
HTTP использует не зашифрованное соединение. Соединение по HTTPS поддерживает шифрование.
-
Работа по HTTP быстрей и менее ресурсоёмко, т.к. шифрование HTTPS требует дополнительных затрат.
-
Порты по умолчанию: в случае HTTP это TCP-порт
80
, для HTTPS - TCP-порт443
.
Чем отличаются методы HTTP/1.1 и HTTP/2?
Протокол HTTP/2 является бинарным. По сравнению с предыдущим стандартом изменены способы разбиения данных на фрагменты и транспортирования их между сервером и клиентом. В HTTP/2 сервер имеет право послать то содержимое, которое ещё не было запрошено клиентом. Это позволит серверу сразу выслать дополнительные файлы, которые потребуются браузеру для отображения страниц, без необходимости анализа браузером основной страницы и запрашивания необходимых дополнений. Также часть улучшений получена (в первом черновике HTTP/2, который представлял собой копию спецификации SPDY) за счёт мультиплексирования запросов и ответов для преодоления проблемы «head-of-line blocking» протоколов HTTP 1; сжатия передаваемых заголовков и введения явной приоритизации запросов.
Какие серии кодов состояния есть в HTTP?
Код состояния HTTP (англ. HTTP status code) — часть первой строки ответа сервера при запросах по протоколу HTTP. Он представляет собой целое число из трёх десятичных цифр. Первая цифра указывает на класс состояния. За кодом ответа обычно следует отделённая пробелом поясняющая фраза на английском языке, которая разъясняет человеку причину именно такого ответа.
- 1xx (информационные)
- 100 - Continue
- 101 - Switching Protocols;
- 102 - Processing.
- 2xx
- 200 OK
- 201 Created
- …
- 3xx
- 300 Multiple Choices
- 301 Moved Permanently
- 302 Moved Temporarily
- 302 Found
- …
- 4xx
- 400 Bad Request
- 401 Unauthorized
- 402 Payment Required
- 403 Forbidden
- 404 Not Found
- 405 Method Not Allowed
- 406 Not Acceptable
- 407 Proxy Authentication Required
- 408 Request Timeout
- ..
- 5xx
- 500 Internal Server Error
- 501 Not Implemented
- 502 Bad Gateway
- 503 Service Unavailable
- 504 Gateway Timeout
- …
Чем отличаются методы GET и POST?
GET передает данные серверу используя URL, тогда как POST передает данные, используя тело HTTP запроса. Длина URL ограничена 1024 символами, это и будет верхним ограничением для данных, которые можно отослать через GET. POST может отправлять гораздо большие объемы данных. Лимит устанавливается web-server и составляет обычно около 2 Mb.
Передача данных методом POST более безопасна, чем методом GET, так как секретные данные (например пароль) не отображаются напрямую в web-клиенте пользователя, в отличие от URL, который виден почти всегда. Иногда это преимущество превращается в недостаток - вы не сможете послать данные за кого-то другого.
Чем отличаются методы POST, PUT и PATCH?
Все эти методы использует тело HTTP запроса для передачи данных.
- POST — используется для создания ресурса.
- PUT — используется для замены ресурса целиком.
- PATCH — используется для редактирования ресурса.
Что такое MIME тип?
MIME, Multipurpose Internet Mail Extension (Многоцелевые расширения Интернет-почты) — спецификация для передачи по сети файлов различного типа: изображений, музыки, текстов, видео, архивов и др. В HTML указание MIME-типа используется при передаче данных форм и вставки на страницу различных объектов.
Что такое Web service?
…
Что такое Web server?
Web server (Веб-сервер) — сервер, принимающий HTTP-запросы от клиентов и выдающий им HTTP-ответы. Так называют как программное обеспечение, выполняющее функции web-сервера, так и непосредственно компьютер, на котором это программное обеспечение работает.
Web-серверы могут иметь различные дополнительные функции, например:
- автоматизация работы web-страниц;
- ведение журнала обращений пользователей к ресурсам;
- аутентификация и авторизация пользователей;
- поддержка динамически генерируемых страниц;
- поддержка HTTPS для защищённых соединений с клиентами.
Наиболее известные web-серверы:
- Apache
- Microsoft IIS
- nginx
Что такое Web application?
Web application (Веб-приложение) - клиент-серверное приложение, в котором клиентом выступает браузер, а сервером — web-сервер. Логика web application распределена между сервером и клиентом, хранение данных осуществляется, преимущественно, на сервере, а обмен информацией происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому web application является кроссплатформенным сервисом.
Что такое Application server?
Application Server (Сервер приложений) — программа, представляющая собой сервер, который занимается системной поддержкой приложений и обеспечивает их жизненный цикл в соответствии с правилами, определёнными в спецификациях. Может работать как полноценный самостоятельный web-сервер или быть поставщиком страниц для другого web-сервера. Обеспечивает обмен данными между приложениями и клиентами, берёт на себя выполнение таких функций, как создание программной среды для функционирующего приложения, идентификацию и авторизацию клиентов, организацию сессии для каждого из них.
Наиболее известные серверы приложений Java:
- Apache Tomcat
- Jetty
- JBoss
- GlassFish
- IBM WebSphere
- Oracle Weblogic
Чем отличаются Web server и Application server?
Понятие web server относится скорее к способу передачи данных (конкретно, по протоколу HTTP), в то время как понятие Application server относится к способу выполнения этих самых приложений (конкретно, удаленная обработка запросов клиентов при помощи каких-то программ, размещенных на сервере). Эти понятия нельзя ставить в один ряд. Они обозначают разные признаки программы. Какие-то программы удовлетворяют только одному признаку, какие-то - нескольким сразу.
Apache Tomcat умеет выполнять приложения? Да, значит он является application server. Apache Tomcat умеет отдавать данные по HTTP? - Да. Следовательно он является web server.
Возьмите какую-нибудь базу данных, в которой на хранимых процедурах описана сложная логика и можно в ответ на SQL-запросы отправлять даже sms. Такую базу данных можно назвать application server, но web server - уже нет, потому что все это не работает с клиентом по HTTP протоколу.
Возьмите чистый Apache, в котором не включены никакие модули для поддержки языков программирования. Он умеет отдавать только статичные файлы и картинки по протоколу HTTP. Это web server, но не application server. Включите модуль для поддержки PHP и разместите там программу на PHP, которая делает запросы к базе данных и динамически формирует страницы. Теперь Apache стал и application server.
Что такое WebSocket?
WebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и web-сервером в режиме реального времени.
Протокол WebSocket определяет две URI схемы
ws:
- нешифрованное соединениеwss:
- шифрованное соединение
Что такое cookies?
Cookies («куки») — небольшой фрагмент данных, отправленный web-сервером и хранимый на устройстве пользователя. Всякий раз при попытке открыть страницу сайта, web-клиент пересылает соответствующие этому сайту cookies web-серверу в составе HTTP-запроса. Применяется для сохранения данных на стороне пользователя и на практике обычно используется для:
- аутентификации пользователя;
- хранения персональных предпочтений и настроек пользователя;
- отслеживания состояния сеанса доступа пользователя;
- ведения разнообразной статистики.
Что такое «сессия»?
Сессия – промежуток времени между первым и последним запросами, которые пользователь отправляет со своего устройства на сервер сайта. Завершается сессия в случае, если со стороны пользователя не поступало запросов в течение определенного промежутка времени или же при обрыве связи.