1. Что происходит, когда браузер вводит адрес
- Разобрать URL
- Разрешение DNS, мониторинг кеша
- Клиент и сервер устанавливают TCP-соединение (трехстороннее рукопожатие).
- Запрос и передача данных
- визуализация данных
- Разбирать HTML, генерировать дерево DOM, анализировать код CSS, отображать данные на веб-странице
2. Разница между опросом, длинным опросом, длинным соединением и веб-сокетом
- Опрос: регулярно отправляйте ajax-запросы на сервер, не дожидаясь ответа.
- Долгий опрос: клиент отправляет запрос на сервер, сервер сохраняет соединение, и когда появляется сообщение об обновлении, он немедленно возвращается к клиенту, и соединение закрывается.
- Длинное соединение: клиент отправляет запрос на сервер, а сервер сохраняет соединение.Когда появляется сообщение об обновлении, оно немедленно возвращается к клиенту, и соединение остается.
- websocket: протокол двусторонней связи на основе TCP, предоставляемый H5, сервер активно отправляет сообщения клиенту, и постоянное соединение может быть установлено только с одним соединением рукопожатия.
3. websocket
Функции:
- На основе протокола TCP, первое рукопожатие через HTTP, порт по умолчанию 80\443
- Может передавать текст или двоичные данные
- нет ограничений по гомологии
- wss (зашифровано через TLS)
Как обновить:
1. 客户端发起协议升级请求(http/get)
Connection: Upgrade // 表示要升级协议
Upgrade: websocket // 表示要升级到websocket协议
Sec-WebSocket-Version: 13 // websocket的版本号
Sec-WebSocket-Key: V8JrNqt+p99r+9wknOeGVw== // 匹配服务端返回的Sec-WebSocket-Accept,提供防护防止恶意连接
2. 服务端响应并返回101,标识协议切换成功

4. Три рукопожатия, четыре расставания
!Необходимо понимать протокол передачи, пакеты данных
- трехстороннее рукопожатие
客户端 ->(建立连接)-> 服务器
客户端 <-(确认接受,建立连接)<- 服务器
客户端 ->(确认接受)-> 服务器
- четыре разрыва
客户端 ->(关闭连接)-> 服务器
客户端 <-(确认关闭)<- 服务器
客户端 <-(关闭连接)<- 服务器
客户端 ->(确认关闭)-> 服务器
5. Код статуса запроса
2XX запрос выполнен успешно
- 200 Запрос выполнен успешно
- 204 Запрос выполнен успешно, но ресурсы не возвращены.
- 206 Сервер успешно обработал часть запроса на получение)
3XX редирект
- 301 (Перемещено навсегда) Постоянное перенаправление
Указывает, что запрошенный ресурс был перемещен на URL-адрес, указанный в заголовке Location, который является фиксированным и не изменится. Поисковая система внесет исправления на основе этого ответа.
- 302 (Найдено) временное перенаправление
Код состояния перенаправления указывает, что запрошенный ресурс был временно перемещен на URL-адрес, указанный в заголовке Location. Браузер перенаправит на этот URL, но поисковик не обновит ссылку на ресурс
- 303 (См. Другое) Ссылка перенаправления ведет не на вновь загруженный ресурс, а на другую страницу
- 304 (Не изменено) При доступе к кэшированным ресурсам сервер не возвращает данных
4XX Ошибка клиента
- 401 Требуется аутентификация
- 403 Доступ запрещен
- 404 Ресурс на сервере не найден
5ХХ ошибка сервера
6. Вопросы безопасности
XSS (Cross Site Scripting) предназначен для внедрения незаконных js-скриптов на веб-страницы и получения файлов cookie для управления браузером.
- DOM xss: Использование DOM позволяет программам и сценариям динамически получать доступ и обновлять содержимое, структуру и стиль документа.
- светоотражающий хсс: когда запрос сделан, XSS-код появляется в URL-адресе, и окончательный ввод отправляется на сервер.После того, как сервер анализирует, XSS-код появляется в содержимом ответа, и, наконец, браузер анализирует и выполняет его.
- хранится xss: Когда злоумышленник отправляет фрагмент кода XSS, он принимается и сохраняется на стороне сервера. Когда все браузеры посещают страницу, они будут XSS. Наиболее типичный пример — доска объявлений.
вред:
- Получить информацию о пользователе с помощью виртуальной формы ввода
- Получить файлы cookie, которые могут выполнять опасные действия от имени пользователя.
Метод профилактики:
- httpOnly: установите атрибут HttpOnly в файле cookie, чтобы скрипт js не мог прочитать информацию о файле cookie.
- Внешний и внутренний формат формы ввода проверки, фильтрация необоснованных символов
Подделка межсайтового запроса CSRF, выдача себя за пользователя для инициирования запроса и выполнение некоторых действий вопреки желанию пользователя (например, изменение информации о пользователе и т. д.)
вред:
- Использование аутентифицированных пользователей для проведения незаконных операций с информацией о продукте и личной информацией и т. д.
Метод профилактики:
- Captcha: заставить пользователя взаимодействовать с приложением
- уменьшить количество запросов на получение
- Защитный механизм проверки токена CSRF признан наиболее подходящим решением
Принцип использования токена
- Серверная часть случайным образом генерирует токен, переносит этот токен в файл cookie, а затем передает этот токен на интерфейсную страницу.
- После того, как внешний интерфейс получает этот токен, каждый запрос переносит токен.
- Серверная часть проверяет согласованность токенов, и если да, то запрос является законным.
7. Процесс запроса Ajax
- Создайте объект XMLHttpRequest,
- Создайте http-запрос и укажите URL, метод и параметры запроса.
- Функция для установки изменения статуса http-запроса
- отправить http-запрос
- Получить возвращенные данные через обратный вызов
- оказывать
8. Междоменный подход
Та же политика происхождения: Один и тот же протокол (http/https), доменное имя и порт имеют одно и то же происхождение, и междоменные связи отсутствуют, и наоборот.
-
Совместное использование ресурсов между источниками (CORS)
Требуется настройка серверной части
-
сервер переадресации прокси
Запросить прокси-интерфейс того же адреса, сервер обращается к междоменному интерфейсу и возвращает данные
-
jsonp
Используйте функцию, согласно которой тег скрипта не ограничен политикой того же происхождения, напишите адрес запроса в src и перезвоните данные в конце
<script type="text/javascript" src="http://localhost/Service.ashx?callback=jsonpCallback" />Ручная реализация
function jsonp(url,callback) { // 定义回调函数 window[callback] = function(){//...todo} // 生成script标签 let script = document.createElement('script') // 设置src地址 script.src = url + '?fn=' + callback // 添加到document中 document.appendChild(script) }
9. куки, сессионстораже, локальное хранилище
cookie
- Размер хранилища до 4k
- всегда переносится в http-запросах
- Нужно установить максимальный возраст, он будет уничтожен, если превысит время
sessionStorage
- Максимальный размер хранилища 5M
- хранится локально
- Текущая сессия действительна и уничтожается при закрытии страницы или браузера.
- Переходя от A к B, B может совместно использовать sessionStorage с A; если B открыт отдельно, он будет нулевым
localStorage
- Максимальный размер хранилища 5M
- хранится локально
- Если время истечения срока действия не установлено, оно будет сохранено навсегда.
- общий между страницами
Если в браузере включен режим конфиденциальности, указанные выше способы хранения будут недействительны.