Основные отличия между FTP и HTTP 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Основные отличия между FTP и HTTP



Отличия от HTTP:

  • Порты (FTP – 21, HTTP - 80)
  • Размеры пакетов - накладные расходы при передаче по HTTP выше, чем по FTP
  • FTP считается надёжней для стабильности передачи данных
  • FTP не может шифровать свой траффик

 

ПРОЦЕСС ОБМЕНА ЗАПРОСАМИ МЕЖДУ КЛИЕНТОМ И СЕРВЕРОМ

В основе взаимодействия клиент-сервер лежит принцип того, что такое взаимодействие начинает клиент, сервер лишь отвечает клиенту и сообщает о том может ли он предоставить услугу клиенту и если может, то на каких условиях.

Перед тем как пользователь увидит содержимое сайта у себя на экране, браузер делает запрос на сервер чтобы получить это самое содержимое.

Запрос происходит в несколько этапов:

  1. DNS-запрос — поиск ближайшего DNS-сервера, чтобы преобразовать URI (например, google.com) в его числовое представление — IP-адрес (например, 74.125.87.99, получено посредством команды ping). Это адрес и будет реальным адресом сайта в Интернет
  2. Соединение — установка соединения с сервером по полученному IP-адресу
  3. Отправка данных (от клиента к серверу)
  4. Ожидание ответа — ждем пока пакеты данных дойдут до сервера, он их обработает и ответ вернется назад
  5. Получение данных (от сервера к клиенту)

 

Синхронное соединение

Клиент послал запрос серверу и пока ждет от него ответ, следующие запросы послать не может.


Параллельные HTTP соединения

Браузер для одновременной доставки нескольких объектов веб страницы устанавливает несколько соединений.


HTTP конвейер

Браузер может послать несколько GET-запросов в одном соединении, не дожидаясь ответа от сервера. Сервер в таком случае должен ответить на все запросы последовательно.


 

 

Ссылки:

https://habr.com/ru/post/215117/

https://developer.mozilla.org/ru/docs/Web/HTTP

https://habrahabr.ru/post/188042/

 

REST

REST(Representational State Transfer — «передача состояния представления»)  архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Не является стандартом или протоколом.

Обеспечивает общение между клиентом (как правило, это браузер) и сервером с помощью обычных HTTP-запросов (GET, POST, PUT, DELETE и т. д), передавая информацию от клиента в параметрах самих запросов, информацию от сервера – в теле ответа (который может быть, например, JSON-объектом или XML-документом).

REST представляет собой согласованный набор ограничений, учитываемых при проектировании распределённой гипермедиа-системы.

В определённых случаях (интернет-магазины, поисковые системы, прочие системы, основанные на данных) это приводит к повышению производительности и упрощению архитектуры. В широком смысле компоненты в REST взаимодействуют наподобие взаимодействия клиентов и серверов во Всемирной паутине.

 

Преимущества REST:

· Надёжность (за счёт отсутствия необходимости сохранять информацию о состоянии клиента, которая может быть утеряна);

· Производительность (за счёт использования кэша);

· Масштабируемость;

· Прозрачность системы взаимодействия (особенно необходимая для приложений обслуживания сети);

· Простота интерфейсов;

· Портативность компонентов;

· Лёгкость внесения изменений;

· Способность эволюционировать, приспосабливаясь к новым требованиям (на примере Всемирной паутины).

SOAP

SOAP(Simple Object Access Protocol) – простой протокол доступа к объектам.

Протокол обмена структурированными сообщениями в распределённой вычислительной среде.

 

Характеризуется использованием HTTP(S)-протокола лишь как транспорта (чаще всего, методом POST).

Все детали сообщений (в обе стороны – от клиента к серверу и обратно) передаются в стандартизованном XML-документе.

SOAP может работать и с другими протоколами прикладного уровня (SMTP, FTP), но чаще всего он применяется поверх HTTP(S). Несимметричный, не зависит от платформы.

 

Недостаток:

Использование SOAP для передачи сообщений увеличивает их объём и снижает скорость обработки. В системах, где скорость важна, чаще используется пересылка XML-документов через HTTP напрямую, где параметры запроса передаются как обычные HTTP-параметры.

 

 

https://habr.com/ru/post/131343/

 

Различия REST и SOAP

 

https://habr.com/ru/post/483204/

 

 

Websocket

 

           Итак, что такое WebSocket? Википедия дает следующее определение: «WebSocket — протокол полнодуплексной связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб‑сервером в режиме реального времени». В отличие от синхронного протокола HTTP, построенного по модели «запрос — ответ», WebSocket полностью асинхронный и симметричный. Он применяется для организации чатов, онлайн‑табло и создает постоянное соединение между клиентом и сервером, которое обе стороны могут использовать для отправки данных.

 

Для веб используется HTTP протокол, зачем же нужен еще один?

           Протокол HTTP работает в режиме «запрос-ответ»: клиент отправляет запрос на сервер, в ответ получает от сервера веб-страницу и показывает ее в браузере. Такая модель обеспечивает очень простую работу протокола, но недостаток ее заключается в том, что сервер ничего не может отправить клиенту по своей воле, ему приходится ждать, когда клиент направит запрос и включать эти данные в ответ.

Раньше, когда основной функционал сводился к просмотру веб-страниц в интернете, этого было достаточно, сейчас же веб усложнился и применяется для большого другого количества задач, например, для мессенджеров.

 

HTTP протокол (полудуплексная передача):

 

(При полудуплексной (HDX) передаче пакет данных отправляется одной системой и принимается другой. Следующий пакет данных нельзя отправить, пока принимающая система не подтвердит получение предыдущего пакета.)

 

           Эту проблему как раз решает WebSocket, где между клиентом и сервером устанавливается постоянное двунаправленное соединение. По этому соединению клиент может в любое время отправлять данные серверу, и сервер тоже в любой момент может отправлять данные клиенту по своей инициативе. Также любая сторона, получившая запрос, можешь ответить на него сразу либо через некоторое время.

 

Примечание:

Дуплексный (duplex) и полнодуплексный (full-duplex) способы связи - одно и то же. Полу-дуплексный (half-duplex)- уже другое.

 

WebSocket (дуплексная/полнодуплексная передача):

 

(При полнодуплексной (FDX) передаче обе системы, и отправляющая и принимающая, могут передавать данные одновременно.)

           WebSocket достаточно распространен в современной веб-разработке, есть поддержка во всех популярных языках программирования и браузерах. Его используют в интеративных играх, мессенджерах, веб-консолях, приложениях трейдеров.

 

Характеристики WebSocket:

  • Двунаправленное постоянное соединение между клиентом и сервером
  • Протокол прикладного уровня (как и HTTP протокол)
  • Порты 80/443 уровня (как и HTTP протокол)
  • Постоянное соединение TCP
  • Префикс URI ws/wss (wss://www.example.com)
  • Существует нешифрованная схема (ws) и шифрованная (wss).

 

Свойства HTTP WebSocket AJAX
Передача данных Синхронный Асинхронный Псевдо-асинхронный
Симметричность Несимметричный (клиент зависит от сервера) Симметричный (клиент и сервер равноправны)  
Кодировки Разные кодировки UTF-8  
Свойства Универсальность (поддерживается везде) Высокая скорость и эффективность  
Подходит для Обновления по запросу Частые обновления Редкие обновления
Недостатки Медленный Уязвимость Низкий КПД
Применение Интернет-магазин Котировки на бирже Чат

 

Принцип работы

  1. Установка соединения (Opening Handshake)
  2. Передача данных

При соединении браузер отправляет по HTTP специальные заголовки, спрашивая: «поддерживает ли сервер WebSocket?».

Если сервер в ответных заголовках отвечает «да, поддерживаю», то дальше HTTP прекращается и общение идёт на специальном протоколе WebSocket, который уже не имеет с HTTP ничего общего.

 

Отличия от HTTP

 

           Если между клиентом и сервером есть прокси, то в случае с HTTP все WebSocket-заголовки и данные передаются через него. Прокси имеет к ним доступ, ведь они никак не шифруются, и может расценить происходящее как нарушение протокола HTTP, обрезать заголовки или оборвать передачу.

В случае с WSS весь трафик сразу кодируется и через прокси проходит уже в закодированном виде. Поэтому заголовки гарантированно пройдут, и общая вероятность соединения через WSS выше, чем через WS.

 

https://www.youtube.com/watch?v=TxVriqBkqbM

 

 

Языки разметки

 

Язык разметки (Markup language) – набор символов или последовательностей символов, вставляемых в текст для передачи информации о его отображении или строении.

Почти каждая аббревиатура в Интернете, в которой есть «ML», является «языком разметки»). Языки разметки являются строительными блоками, используемыми для создания веб-страниц или любых форм и размеров.

 

На самом деле в мире существует много разных языков разметки, при этом назначение разметки может быть различно.

Для веб-дизайна и разработки есть три конкретных языка разметки:

  • HTML
  • XML
  • XHTML

Другие языки разметки:

  • YAML
  • Haml
  • BBCode

 

Язык разметки не считается языком программирования по двум причинам:

  • не содержит исполняемый код
  • не обладает полнотой по Тьюрингу

 

HTML (HyperText Markup Language) – дословно переводится как «язык гипертекстовой разметки», где с помощью специальных слов и символов (тегов) осуществляется форматирование текста, изображений и видео на экранах устройств.

HTML называют языком, но не нужно путать его с языком программирования – это язык разметки, который ничего не делает с данными, не производит никаких вычислений, преобразований и прочих изменений, он только расставляет информацию по разным частям монитора и показывает её в удобном для восприятия виде.

Простым языком: HTML – это код, с помощью которого контент красиво и удобно для восприятия размещается на странице. Кроме того, HTML обеспечивает связь разных веб-страниц друг с другом через систему ссылок.

XML (Extensible Markup Language) – это расширяемый язык разметки текстовых документов, который используется для создания структуры данных, чтобы затем передавать или хранить их.

XML называется расширяемым языком потому, что разработчик может формировать собственную разметку, расширять ее под свои требования, ограничиваясь лишь заданным синтаксисом.

Язык создавался специально для использования в Интернете: документы, созданные на XML, удобно и создавать, и читать, и править. Он популярен во всех сферах программирования, поскольку отличается простотой восприятия и универсальностью прочтения разными приложениями.

XHTML (Extensible Hypertext Markup Language — расширяемый язык гипертекстовой разметки) – это основанный на XML язык разметки гипертекста, максимально приближенный к текущим стандартам HTML. XHTML отличается от HTML строгостью написания кода.

YAML  («Yet Another Markup Language» — «Ещё один язык разметки», позже — «YAML Ain't Markup Language» — «YAML — не язык разметки») — это язык сериализации данных, который соответствует ожиданиям пользователей в отношении данных. Он разработан, чтобы быть дружественным к человеку и отлично работает с другими языками программирования.

Haml  (HTML abstraction markup language) — язык разметки для упрощённой генерации HTML, который позволяет чисто и просто описать HTML любого веб-документа без использования встроенного кода

BBCode  (Bulletin Board Code) — язык разметки, используемый для форматирования сообщений на многих электронных досках объявлений (BBS) и форумах. Для форматирования текста используются теги, подобные тегам HTML, но, в отличие от них, заключённые в квадратные скобки («[» и «]»). Перед отображением страницы движок форума производит разбор текста и преобразование его в HTML-код.

 

Веб-страницы

ОТОБРАЖЕНИЕ ВЕБ-СТРАНИЦ

Веб-страница представляет собой набор конкретных контента обеспечивается веб-сайта и отображается на пользователя в веб-браузере.

           Основной элемент веб-страницы –  это один или несколько текстовых файлов, написанных на языке гипертекстовой разметки (HTML). Многие веб-страницы также используют код JavaScript для динамического поведения и код каскадных таблиц стилей (CSS) для семантики представления. Изображения, видео и другие мультимедийные файлы также часто встраиваются в веб-страницы.

 

HTML – базовый уровень (форматирование элементов). Благодаря данному стандарту браузер точно знает, как должна выглядеть страница и где взять тот или иной составной элемент страницы. Мы используем HTML для визуального и смыслового структурирования нашего web контента, например, определяем параграфы, заголовки, таблицы данных, или вставляем изображения и видео на страницу.

CSS  (Cascading Style Sheet) – каскадные таблицы стилей - расширенный уровень. CHTML определяет структуру страницы, а CSS их оформление (цвета, шрифт, размеры и т.д.), например, придаём цвет фону (background) и шрифту, придаём контенту многоколоночный вид.

CSS – формальный язык описания внешнего вида документа, написанного с использованием языка разметки.

Преимущественно используется как средство описания, оформления внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML, но может также применяться к любым XML-документам, например, к SVG или XUL. Если HTML структурирует контент на странице, то CSS позволяет отформатировать его, сделать более привлекательным для читателя.

Правила CSS пишутся на формальном языке CSS и располагаются в таблицах стилей. Эти таблицы стилей могут располагаться как в самом веб-документе, внешний вид которого они описывают, так и в отдельных файлах, имеющих формат CSS. По сути, формат CSS — это обычный текстовый файл. В файле.css не содержится ничего, кроме перечня правил CSS и комментариев к ним.

JavaScript – язык программирования, который позволяет вам создать динамически обновляемый контент, управляет мультимедиа, анимирует изображения и многое другое. JS предназначен для написания сценариев для активных HTML-страниц и не предназначен для создания автономных приложений.

Программа на JavaScript встраивается непосредственно в исходный текст HTML-документа и интерпретируется браузером по мере загрузки этого документа. С помощью JavaScript можно динамически изменять текст загружаемого HTML-документа и реагировать на события, связанные с действиями посетителя или изменениями состояния документа или окна. Наиболее широкое применение находит в браузерах как язык сценариев для придания интерактивности веб-страницам.

Структурно JavaScript можно представить в виде объединения трёх чётко различимых друг от друга частей:

· ядро (ECMAScript),

· объектная модель браузера (Browser Object Model или BOM),

· объектная модель документа (Document Object Model или DOM).

 

Что же действительно происходит, когда на странице запускается JavaScript.

 

Когда вы загружаете страничку в браузере, вы запускаете ваш код (HTML, CSS и JavaScript) внутри исполняемой среды (внутри вкладки браузера). Это как будто фабрика берёт сырьё (некий код) и выдаёт продукцию (веб-страничку).

 

 

Код JavaScript выполняется JavaScript-движком браузера, после того как код HTML и CSS был обработан и сформирован в веб-страницу. Это гарантирует, что структура и стиль страницы уже сформированы к моменту запуска JavaScript.

Сегодня JavaScript может выполняться не только в браузере, но и на сервере или на любом другом устройстве, которое «движок» JavaScript.

 

Как работают движки?

Движки сложны. Но основы понять легко.

 

· Движок (встроенный, если это браузер) читает («парсит») текст скрипта.

· Затем он преобразует («компилирует») скрипт в машинный язык.

· После этого машинный код запускается и работает достаточно быстро.

 

Движок применяет оптимизации на каждом этапе. Он даже просматривает скомпилированный скрипт во время его работы, анализируя проходящие через него данные, и применяет оптимизации к машинному коду, полагаясь на полученные знания. В результате скрипты работают очень быстро.

 

Возможности JavaScript сильно зависят от окружения, в котором он работает. Например, Node.JS поддерживает функции чтения/записи произвольных файлов, выполнения сетевых запросов и т.д.

 

В браузере для JavaScript доступно всё, что связано с манипулированием веб-страницами, взаимодействием с пользователем и веб-сервером.

 

Например, в браузере JavaScript может:

 

· Добавлять новый HTML-код на страницу, изменять существующее содержимое, модифицировать стили.

· Реагировать на действия пользователя, щелчки мыши, перемещения указателя, нажатия клавиш.

· Отправлять сетевые запросы на удалённые сервера, скачивать и загружать файлы (технологии AJAX и COMET).

· Получать и устанавливать куки, задавать вопросы посетителю, показывать сообщения.

· Запоминать данные на стороне клиента («local storage»).

 

Использование кода JavaScript в контексте разметки страницы расценивается как плохая практика. 

Для всего прочего может встраиваться следующими способами:

· Расположение внутри страницы

· Расположение внутри тега

· Вынесение в отдельный файл

 

3 сильные стороны JavaScript:

  1. Полная интеграция с HTML/CSS.
  2. Простые вещи делаются просто.
  3. Поддерживается всеми основными браузерами и включён по умолчанию.

 

JavaScript – это единственная браузерная технология, сочетающая в себе все эти три вещи. Вот почему это самый распространённый инструмент для создания интерфейсов в браузере.

Хотя, конечно, JavaScript позволяет делать приложения не только в браузерах, но и на сервере, на мобильных устройствах и т.п.

 

 



Поделиться:


Последнее изменение этой страницы: 2021-11-27; просмотров: 125; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.141.24.134 (0.071 с.)