You are on page 1of 27

WEB Service. Rest. HTTP. HTTPS.

SOAP и
еще много непонятных аббревиатур
Что такое HTTP?

HTTP — широко распространенный протокол передачи данных, изначально


предназначенный для передачи гипертекстовых документов (т.е. документов,
которые могут содержать ссылки, позволяющие организовать переход к
другим документам), сейчас же - для любых данных
Что такое HTTP?

● Протокол HTTP предполагает использование клиент-серверной структуры передачи


данных. Клиентское приложение формирует запрос и отправляет его на сервер,
серверное ПО обрабатывает запрос, формирует ответ и передает его обратно
клиенту.
● Этот протокол не только устанавливает правила обмена информацией, но и служит
транспортом для передачи данных. С его помощью браузер загружает содержимое
сайта на ваш компьютер или смартфон.
● У HTTP есть один недостаток: данные передаются в открытом виде и никак не
защищены. На пути из точки А в точку Б информация в интернете проходит через
десятки промежуточных узлов, и, если хоть один из них контролируется
злоумышленником, данные могут перехватить. То же самое может произойти, когда
вы пользуетесь незащищенной сетью Wi-Fi, например, в кафе.
Что такое HTTPS?

● Для установки безопасного соединения используется протокол HTTPS с поддержкой


шифрования.
● Защиту данных в HTTPS обеспечивает криптографический протокол SSL/TLS,
который шифрует передаваемую информацию. По сути этот протокол является
оберткой для HTTP. Он обеспечивает шифрование данных и делает их недоступными
для просмотра посторонними. Это позволяет двум незнакомым между собой
участникам сети установить защищенное соединение через незащищенный канал.
● При установке безопасного соединения по HTTPS ваш компьютер и сервер сначала
выбирают общий секретный ключ, а затем обмениваются информацией, шифруя ее с
помощью этого ключа. Общий секретный ключ генерируется заново для каждого
сеанса связи. Его нельзя перехватить и практически невозможно подобрать.
Что такое HTTPS?

❑ Однако для полной надежности не хватает гарантии того, что ваш собеседник
именно тот, за кого себя выдает. Для этого существует сертификат. Вам как
пользователю сертификат не нужен, но любой сервер (сайт), который хочет
установить безопасное соединение с вами, должен его иметь.
❑ Сертификат подтверждает 2 вещи:
1) Лицо, которому он выдан, действительно существует
2) Оно управляет сервером, который указан в сертификате.
❑ Выдачей сертификатов занимаются центры сертификации. В нем содержатся
данные о владельце, в т.ч. имя (или название организации), а также подпись,
удостоверяющая подлинность. Проверка подлинности сертификата — первое, что
делает браузер при установке безопасного HTTPS-соединения. Обмен данными
начинается только, если проверка прошла успешно.
HTTP определяет следующую структуру запроса (request):
● стартовая строка (starting line) — определяет тип сообщения, имеет вид Метод URI
HTTP/Версия протокола, например GET /web-programming/index.html HTTP/1.1
● заголовки запроса (header fields) — характеризуют тело сообщения, параметры
передачи и прочие сведения
● тело сообщения (body) — необязательное
HTTP определяет следующую структуру ответного сообщения
(response):
● строка состояния (status line), включающая код состояния и сообщение о причине
● поля заголовка ответа (header fields)
● дополнительное тело сообщения (body)
Метод, используемый в HTTP-запросе, указывает, какое действие вы хотите
выполнить с этим запросом.
Основные методы:
● GET: получить подробную информацию о ресурсе
● POST: создать новый ресурс
● PUT: обновить существующий ресурс
● DELETE: удалить ресурс
По спецификации HTTP из всех методов сервер должен уметь понимать только GET, а
остальные на усмотрение. Но при этом и не задано строго, что сервер должен делать
при получении запроса. В дальнейшем было введено соглашение REST,
определившее структуру построения веб-приложений, в т.ч. и работу с методами.
Статус код Суть Что это значит?
1хх Информационные Означает, что сервер принял запрос и
обрабатывает его дальше.
2хх Успешные Означает, что сервер успешно обработал
запрос
3хх Перенаправление Сервер сообщает, что для выполнения
запроса
необходимы дополнительные действия
(например, переход на другой URL)
4хх Ошибка клиента Сервер не может успешно выполнить запрос
по причине ошибки на стороне клиента
5хх Ошибка сервера Сервер не может успешно выполнить запрос
по причине ошибки на стороне сервера
Что такое endpoint, URI, URL?
Сайт, написанный на любом языке, поддерживающем HTTP запросы, не посылает на
сервер никаких PHP/C/Python команд, а общается ним с помощью запросов,
описанных в API. Адрес, на который посылаются сообщения называется Endpoint.
Обычно это URL (например, название сайта) и порт.

Resource Endpoint = Base URL + Resource

Например, для Web-сервиса на порту 8080, Endpoint выглядит так:


http://lemonschool.ua:8080

Если Web-сервису нужно отвечать на разные сообщения, создаются сразу несколько


URL (interfaces), по которым к сервису можно будет обратиться. Например:

● http://lemonschool.ua:8080 /resource1/status
● http://lemonschool.ua:8080 /resource1/getserviceInfo
Что такое endpoint, URI, URL?

URI – Uniform Resource Identifier URL – Uniform Resource Locator


Унифицированный идентификатор ресурса Унифицированный определитель
местонахождения ресурса
Имя и адрес ресурса в сети, включает в себя Адрес ресурса в сети, определяет
URL и URN местонахождение и способ обращения к нему
Пример: https://lemonschool.com
https://lemonschool.com/kursy-nomer-
odin/1.png
Что такое endpoint, URI, URL?
Что такое WEB-сервис?

Web-сервис - программная система, предназначенная поддерживать взаимодействие между


интераперабельными устройствами через сеть. Web-сервис обладает интерфейсом, описанным в WSDL
формате. Другие системы, взаимодействуют с Web-сервисом через SOAP-сообщения, которые обычно
передаются с помощью HTTP с XML сериализацией в связке с другими веб-стандартами.
● Сервис доступен по сети, может располагаться и выполняться на разных компьютерах
● Передача сообщений между сервисом и клиентом происходит в независимом формате
● Web Service может быть создан из существующего Web приложения
● Сервис использует стандартизированную XML messaging систему
● Не привязан к операционной системе или языку программирования
Что такое WEB-сервис?
Что такое XML?

XML (eXtensible Markup Language — расширяемый язык разметки) — это


язык программирования для создания логической структуры данных, их
хранения и передачи в виде, удобном и для компьютера, и для человека.
Отличается простотой синтаксиса и универсальностью. XML позволяет
описывать документы с помощью тегов, которые можно задавать
самостоятельно.
Что такое XML?

XML используется везде, где требуется выделить логическое содержимое


документа для обработки.

XML позволяет:
● записывать иерархию — «один подчиняется другому»
● размечать текст по смыслу от важного к второстепенному
● хранить типовые данные — скрипты, настройки программ, названия чего-
либо
● размечать текст для машинного обучения
● хранить результаты работы текстовых редакторов
Структура XML
У XML-файлов древовидная структура. Это значит, что в них используется
набор тегов, внутри которых могут находиться другие теги со своими
значениями.

Самый верхнеуровневый узел называется корнем, а все, что находится


внизу, — листьями.

Теги заключены в скобки <>.


Что такое XML?
Элемент «пролог»
Если он есть, то находится в начале документа.
В примере: <?xml version=»1.0′′ encoding=»UTF-8′′?>.
Это означает, что используется XML версии 1.0 и кодировка UTF-8.
Может быть полезно, если в файле есть текст на разных языках.
Что такое XML?
Документ обязательно должен иметь корневой элемент.
Его еще называют «root». В примере: <claim>
Что такое XML?
У всех элементов должны быть закрывающие теги.
У них есть дополнительный символ — /.
В примере: </claim>, </from>, </title>, </body>
Правила XML-документа
❑ Все теги являются регистро-чувствительными. Это значит, что если,
например, тег <claim> закрыт </Claim>, документ будет оформлен
некорректно
❑ Значения атрибутов должны быть заключены в кавычки. Атрибут —
характеристика тега
❑ Любые теги могут иметь атрибуты. В «прологе» это version и encoding, а
«1.0» и «UTF-8» — значения
❑ Вложенность тегов контролируется, поэтому важно следить за порядком
открывающих и закрывающих тегов
❑ В XML-коде учитываются все символы форматирования, включая
переводы строк, пробелы, табуляция
Правила XML-документа
● Большинство приложений продолжают работать, даже если добавить или
удалить часть данных. XML переводится как «расширяемый язык
разметки». Он хорошо приспособлен для создания новых версий файлов
и объектов
● Данные хранятся в виде текста, что позволяет им быть программно- и
машинно-независимыми
● Язык понятен и людям, и машинам. Главное преимущество —
читаемость. Например, для обозначения выделения текста жирным в
xml достаточно написать <Жирный></Жирный>, а в HTML так: <b></b>
● Размер XML-документа больше бинарного представления тех же данных
● Большинство задач решается с помощью простых и производительных
решений, все возможности синтаксиса XML требуются редко
● Большая гибкость и отсутствие жестких ограничений позволяют одной
и той же структуре быть представленной множеством различных
способов
Что такое API?

API - Application Programming Interface – программный интерфейс


приложения.

API - это контракт, который предоставляет программа. «Ко мне можно


обращаться так и так, я обязуюсь делать то и это»
Что такое API?

Любая оплата идет через API платежной системы. Купил розетку на розетке?
Обувь в онлайн-магазине? Билеты на самолет? Как только нажмешь
«оплатить», сайт соединит тебя с платежной системой.
4 вида API?
SOAP – Simple Object Access Protocol, т. е. простой протокол доступа к объектам. Клиент и сервер обмениваются
сообщениями посредством XML. Это менее гибкий API, который был более популярен в прошлом.

RPC API - такие API называются системой удаленного вызова процедур. Клиент выполняет функцию (или
процедуру) на сервере, и сервер отправляет результат обратно клиенту.

Websocket API – это еще одна современная разработка web API, которая использует объекты JSON для передачи
данных. WebSocket API поддерживает двустороннюю связь между клиентскими приложениями и сервером.
Сервер может отправлять сообщения обратного вызова подключенным клиентам, что делает его более
эффективным, чем REST API.

REST API
На сегодняшний день это самые популярные и гибкие API-интерфейсы в Интернете. Клиент отправляет запросы на
сервер в виде данных. Сервер использует этот клиентский ввод для запуска внутренних функций и возвращает
выходные данные обратно клиенту. Давайте рассмотрим API REST более подробно ниже.
ДЗ
Почитать про разницу PUT и PATCH запросов

You might also like