Основы работы веб приложений Flashcards

1
Q

Клиент-серверная архитектура

A
  • архитектура, в которой сетевая нагрузка распределяется между поставчиками услуг (серверами) и заказчиками услуг (клиентами).
    Клиент и сервер - программное обеспечение. Находятся на разных сетевых машинах, иногда на одной, взаимодействуют между собой через сетевые протоколы (например http)
    Если есть база данных, то сервер еще отправляет запрос туда, а база данных обратно через сервер
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Тонкие и толстые клиенты

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Веб-сайт, Веб-приложение, Веб-сервисы

A

Веб-сайт - носят информационный характер. Простая архитектура, просто объединены страницы в одном месте. Взаимодействия почти нет. Пример - новостные сайт, сайты с погодой
Веб-приложение - интерактивные приложения, в которых пользователь может вводить, получать или манипулировать данными. Имеют более тесную связь с сервером, больше запросов. Пример - соц. сети, магазины
Веб-сервисы - Прикладной программный интерфейс. Разрабатываются не самим исполнителем, а встраиваются уже в наш продукт. Человек отправляет запрос в службу программного обеспечения, которая, в свою очередь, возвращает ответ в удобочитаемом для человека формате. Если создается программное приложение, не нужно создавать все с нуля. Существует множество готовых сервисов, которые вы можете подключить к своему приложению, и вы можете начать предоставлять эти сервисы в своем приложении. Разрабатываются сервисы соответстенно чаще для встраивания в другие проекты

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

REST и SOAP, в чем разница

A

Существуют два архитектурных стиля REST и SOAP. Первый более распространен
REST (Representational state transfer)
Приложения на REST архитектуре должны быть:
Клиент-серверными.
Взаимодействие между клиентом и сервером должно быть на HTTP.
Все операции над ресурсами указываются в самих запросах. В архитектуре REST все данные являются «ресурсами» Все, что необходимо сделать с ресурсом в архитектуре REST, несется в самом запросе.
Stateless – состояние клиента не сохраняется на сервере. Каждый раз, при обращении клиента к серверу, сервер воспринимает клиента как нового. Для аутентификации клиента на сервере могут использоваться cookies, например: сookies предоставляет дополнительную информацию от клиента пользователю (позиции в корзине пользователя в интернет-магазине).
Возможность работать с любыми форматами данных (json, xml, text…).

SOAP (Simple Object Access Protocol) - является стандартизированным протоколом передачи сообщений между клиентом и сервером. Обычно он используется совместно с HTTP(S), но может работать и с другими протоколами прикладного уровня (например, SMTP и FTP).
В отличие от REST, который может использовать любые форматы данных, SOAP работает только с XML форматом (XML - расширенный язык разметки)

То есть REST более гибкий

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

HTTP протокол

A

HTTP протокол
HyperText Transfer Protocol
Протокол - набор правил передачи информации

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

TCP/IP Model и OSI Model

Их Уровни

A

Сетевые модели - TCP/IP и OSI (вторая устарела и используется редко). В OSI 7 уровней, в TCP/IP их четыре
TCP/IP
Уровень сетевых интерфейсов. Передаются физические импульзы - оптоволокно (Ethernet)
Сетевой уровень - передача сигналов в виде битов и байтов (IP, ARP, ICMP)
Транспортный - Транспортные взаимодействия в сети. TCP/UDP.
Прикладной уровень - специфичный для приложения, как в приложении происходит взаимодействие с информацией (HTTP, FTTP, NTP, PING)

OSI
Физический уровень - биты - работа со средой передачи, сигналами и тд (за счёт сетевого обордования) - USB, RJ («витая пара», коаксиальный, оптоволоконный), радиоканал
Канальный Уровень (Data link) - Биты или кадры - Физическая адресация (Сетевой мост, коммутатор, точка доступа) - PPP, IEEE 802.22, Ethernet, DSL, ARP, сетевая карта.
Сетевой - пакеты - Определение маршрута и логическая адресация (Маршрутизатор, Сетевой шлюз,
Межсетевой экран) - IPv4, IPv6, IPsec, AppleTalk, ICMP
Транспортный Уровень - Сегменты или Датаграммы - прямая связь между конечными пункатми и надежность- TCP, UDP, SCTP, Порты
Сеансовый Уровень - Данные - Управление сеансом связи - RPC, PAP, L2TP, gRPC
Уровень Представления - Данные - Представление и шифрование данных - ASCII, EBCDIC, JPEG, MIDI
Уровень Прикладной - Данные - Доступ к сетевым службам - HTTP, FTP, POP3, WebSocket

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Разница TCP и UDP протоколов

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Из чего состоит HTTP протокол

A

Основная часть (Payload) - что мы должны передать
Служебная информация - то как основаня часть должна передаваться (Header - Заголовок, доп. инфа для сервера)
HTTP Request

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

HTTP Response и из чего состоит

A

Версия протокола, статус код и статус месседж (говорит об успешности того, как отвечает сервер), Дата,информация о сервере, заголовки

Status Message - Статус ответа, дошел ли он.

Нет бэйс лайна
вместо него status code
например 404 Not Found, 200 OK

HEADERS - здесь также используются, но уже необходимы клиенту чтобы правильно отрендерить то, что отправляет нам сервер
также есть параметры и их атрибуты
param1: attr1, attr2, attr3 …..
param2: attr1, attr2, …..
+
content-typ: image:jpg
чтобы клиент понял, что было отправлено изображение и смог расшифровать текст в изображение (потому что любой контент (картинка, видео, музыка отправляются в виде текста, который потом расшифровывается)
cookies:
last-modified: 14.01.2022 15:10:20 GMT (говорит о том когда файл на сервере менялся последний раз. клиент отправляет запрос if-modified-since, в котором пишется дата, когда изображение было получено в прошлый раз. Если на сервере изображение с тех пор не менялось, то оно не отправляется еще раз)
BODY: тело запроса, данные

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

SSL/TLS

A

Протокол TLS (transport layer security) основан на протоколе SSL (Secure Sockets Layer), изначально разработанном в Netscape для повышения безопасности электронной коммерции в Интернете

Протокол SSL был реализован на application-уровне, непосредственно над TCP (Transmission Control Protocol), что позволяет более высокоуровневым протоколам (таким как HTTP или протоколу электронной почты) работать без изменений. Если SSL сконфигурирован корректно, то сторонний наблюдатель может узнать лишь параметры соединения (например, тип используемого шифрования), а также частоту пересылки и примерное количество данных, но не может читать и изменять их.

После того, как протокол SSL был стандартизирован IETF (Internet Engineering Task Force), он был переименован в TLS. Поэтому хотя имена SSL и TLS взаимозаменяемы, они всё-таки отличаются, так как каждое описывает другую версию протокола.

Протокол TLS предназначен для предоставления трёх услуг всем приложениям, работающим над ним, а именно: шифрование, аутентификацию и целостность.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Шифрование, Аутентификация, Целостность

A

Шифрование – сокрытие информации, передаваемой от одного компьютера к другому;
Аутентификация – проверка авторства передаваемой информации;
Целостность – обнаружение подмены информации подделкой.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Версии HTTPS

A

0.9 1.0, 1.1, 2.0
2.0 разработан гуглом
Преимущества: использует бинарный формат (нули и единицы) вместо текста (таким образом уменьшается количество инфы, которую нужно передавать), 2.0 мультипликсирован (то есть все запросы и вся информация проходят по одному TCP соединению одновременно (транспортному протоколу) в то время как в 1.1 все запросы проходят друг за другом.
Следовательно 2.0 быстрее

Уже есть HTTP3, пока не так часто встречается, тоже разработан гуглом. Вместо TCP новая версия HTTP использует QUIC. Это экспериментальный транспортный протокол, разработанный Google

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Какие есть протоколы еще?

A

FTP - File Transfer Protocol
POP3 & SMTP - POP3 для входящей почты, SMTP для исходящей почты
IMAP - тоже почтоый протокол от майкрософт
UDP - User Datagram Protocol - непрерываная передача данных

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

URL

A

Uniform Resource Locator - Уникальный адрес в сети

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

URN

A

Uniform Resource Name - Неизменяемая последовательность символов, определяющая название ресурса. Это имя определяет только название самого ресурса, но не говорит как к нему подключаться

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

URI

A

Uniform Resource Identifier - Уникальный идентифакатор. Обобщенное понятие множества идентификаторов ресура, включает как URL, так и URN
Схема (scheme) - показывает на то, как обращаться к ресурсу, чаще всего это сетевой протокол (http, ftp, ldap)
Иерархическая часть (hier-part) - данные, необходимые для идентификации ресурса (например, адрес сайта)
Запрос (query) - необязательные дополнительные данные ресурса (например, поисковой запрос)
Фрагмент (fragment) – необязательный компонент для идентификации вторичного ресурса ресурса (например, место на странице)

URI – https://wiki.merionet.ru/images/vse-chto-vam-nuzhno-znat-pro-devops/1.png
URL - https://wiki.merionet.ru
URN - images/vse-chto-vam-nuzhno-znat-pro-devops/1.png

17
Q

Маска подсети

A

нужна для определния грациц подсети

Компьютерам маска подсети нужна для определения границ — ни за что не угадаете чего — подсети. Чтоб каждый мог определить, кто находится с ним в одной [под]сети, а кто — за ее пределами.

Маска подсети определяет диапазон IP-адресов, которые может использовать сеть. С ее помощью сети могут делиться на небольшие подсети, которые подключаются к Интернету. Маска подсети будет обозначать эти подсети.

Дело в том, что внутри одной сети компьютеры обмениваются пакетами «напрямую», а когда нужно послать пакет в другую сеть — шлют их шлюзу по умолчанию

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

Хорошим примером этого является домашняя сеть. У вас есть маршрутизатор, который будет использовать подсеть для безопасности. Ваш провайдер выделит вам публичный статический IP-адрес. Этот номер будут видеть все веб-сайты и всё, к чему вы подключаетесь. Однако, если вы проверите идентификатор вашего компьютера, он, скорее всего, будет отличаться от общедоступного.

Это связано с тем, что на домашней стороне маршрутизатора имеется подсеть, на которую нельзя войти извне. Входящий трафик проходит через маршрутизатор, который затем транслирует и направляет его на правильное устройство.

Маска подсети — это тоже 32-бита. Но в отличии от IP-адреса, нули и единицы в ней не могут чередоваться. Всегда сначала идет сколько-то единиц, потом сколько-то нулей

18
Q

MAC-адрес

A

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

19
Q

DNS

A

domain name system. Система доменных имён, то есть каждому айпи адресу можно присвоить буквенное имя.

20
Q

Cache браузера

A

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

21
Q

Cookies (куки)

A

тоже временные файлы, но служат для хранения персональных данных пользователя (например данные авторизации, предпочтения на сайте, настройки)

22
Q

HTML

A

(HyperText Markup Language — «язык гипертекстовой разметки»)- cамый базовый строительный блок Веба. Он определяет содержание и структуру веб-контента. Другие технологии, помимо HTML, обычно используются для описания внешнего вида/представления (CSS) или функциональности/поведения (JavaScript) веб-страницы.

C помощью html обычно прописывают текстовые блоки, информацию в них и как они должны отображаться на странице. Можно задавать простые стили, определять шрифты, добавлять изображения

Единицей информации является тег: например <b> text </b>, некоторые теги надо закрывать, некоторые нет - <img></img>

Атрибут - используется для уточнения информации, например для создания гиперссылки: <a> Yandex </a>
Для изображений: <img></img>

23
Q

CSS

A

Cascading Style Sheets - это формальный язык, служащий для описания оформления внешнего вида документа, созданного с использованием языка разметки (HTML, XHTML, XML). Название происходит от английского Cascading Style Sheets, что означает «каскадные таблицы стилей».
Назначение CSS – отделять то, что задает внешний вид страницы, от ее содержания. Если документ создан только с использованием HTML, то в нем определяется не только каждый элемент, но и способ его отображения (цвет, шрифт, положение блока и т. д.). Если же подключены каскадные таблицы стилей, то HTML описывает только очередность объектов. А за все их свойства отвечает CSS.
Как используется:
Внутри тега
Внутри атрибута <img></img>
Внутри отдельного документа (например style.css) - присоединяется тегом link

24
Q

XML

A

extensible Markup Language— расширяемый язык разметки. Язык XML предназначен для хранения и передачи данных. HTML же предназначен для отображения данных. XML не является заменой HTML. Они предназначены для решения разных задач: XML решает задачу хранения и транспортировки данных, фокусируясь на том, что такое эти самые данные, HTML же решает задачу отображения данных, фокусируясь на том, как эти данные выглядят. Таким образом, HTML заботится об отображении информации, а XML о транспортировке и хранении информации.
В XML вы изобретаете свои собственные теги. Так, в HTML все используемые теги предопределены. HTML документы могут использовать только те теги, которые определяются в стандартах HTML (<p>, </p><li> и т. д.). XML позволяет автору определять свои языковые теги и свою структуру документа.
</li>

25
Q

HTTP Request

A

Состоит из:

Base Line / Start Line - стартовая строка запроса
METHOD URI protocol
Метод (что хотим сделать) URI (Unified Resource Identificator - Идентификатор ссылки ресурса, то есть ГДЕ или С ЧЕМ мы хотим выполнить метод) - protocol (по какому протоколу пришел)
Пример: GET index.html HTTP 1.1

HEADERS - блок заголовков
нужны чтобы передать серверу всю необходимую инфу о клиенте, которую ему нужно знать чтобы создать правильный ответ
хэдеры передаются в виде параметров и их атрибутов
param1: attr1, attr2, attr3 …..
param2: attr1, attr2, …..
Тут может передаваться информация о том с какого девайса сидит пользователь (user-agent:) (ноут или телефон, какая ОС, какой браузер)), часовой пояс (time-zone), инфа о куки (cookies), кэш (if-modified-since: date,time, чтобы сервер знал когда было последнее обновление кэша)

BODY - тело запроса, данные
опциональная часть запроса

26
Q

Коды ответа HTTP

A

Код ответа (состояния) HTTP показывает, был ли успешно выполнен определённый HTTP запрос. Коды сгруппированы в 5 классов:

Информационные 100 - 199
Успешные 200 - 299
Перенаправления 300 - 399
Клиентские ошибки 400 - 499
Серверные ошибки 500 - 599