filmov
tv
Python Advanced Урок # 20 Работа с сетью в Python: Socket и HTTP
![preview_player](https://i.ytimg.com/vi/bdSc_-YYdLQ/maxresdefault.jpg)
Показать описание
Работа с сетью в Python: Socket и HTTP No урока: 1 Курс: Python Advanced
Средства обучения: Python3.6, PyCharm
Обзор, цель и назначение урока
Научить студентов писать сетевые приложения на языке Python. Дать базовые знания сетевой модели OSI и её уровней, а также научить создавать собственные socket-сервера/клиенты. Изучить протокол HTTP. Дать базовые знания данного протокола и его особенностей, а также научить обрабатывать HTTP сообщения с использованием языка Python.
Изучив материал данного занятия, учащийся сможет:
Понимать основы сетевой модели OSI.
Разрабатывать UDP/TCP socket-сервера.
Разрабатывать UDP/TCP socket-клиенты, как для собственных, так и для сторонних socket-
серверов.
Понимать протокол HTTP.
Понимать типы запросов, их особенности и ограничения.
Формировать запросы к HTTP серверам и обрабатывать ответы от них.
Использовать стандартную библиотеку urllib.
Использовать стороннюю библиотеку requests.
Создавать программы на языке Python, позволяющие автоматизировать обработку
ответов.
Содержание урока
1. Основы сетевой модели OSI и её уровней.
2. Понятие адресации (IP и Port) и что такое socket.
3. Описание протокола UDP.
4. Создание UDP клиента/сервера.
5. Создание TCP клиента/сервера и сравнение с UDP.
6. Блокирующие и неблокирующие режимы работы socket.
7. ООП подход при создании socket-серверов используя библиотеку socketserver.
8. Создание простого socket-сервера средствами фреймворка Twisted.
9. Что такое протокол HTTP, как его использовать и основные типы запросов.
10. Понятие заголовков и статус кодов.
11. Типы HTTP запросов и их особенности.
12. Создание socket для демонстрации заголовков и ответов сервера.
13. Стандартная библиотека языка Python- urllib.
14. Библиотека requests.
15. Конфигурация библиотеки urllib: размер, pull-а соединений и режимы работы.
Резюме
Модель OSI подробно описывает работу сети. Каждый уровень данной модели решает свою конкретную задачу, будь то логическая адресация, шифрование или передача данных по оптоволокну. Каждый уровень является частью единой модели.
Полный адрес компонента сети состоит из IP и порта и записывается следующим образом 127.0.0.1:80.
UDP протокол является ненадёжным протоколом передачи данных. Пакеты, отправленные с использованием данного протокола, могут быть потеряны или же нарушен их порядок при получении. Нет никакой гарантии 100%-ной доставки пакетов.
TCP протокол является надёжным протоколом передачи данных. Данный протокол осуществляет так называемое рукопожатие и перед передачей/получением данных должен установить соединение с конечным узлом сети.
В стандартной библиотеке языка Python существует библиотека socket, которая позволяет создавать socket-сервера и socket-клиенты.
Для создания socket-серверов наиболее удобным подходом является ООП. Это необязательное требование, однако ООП подход предоставляет более удобный интерфейс для обработки запросов и новых подключений. Мы можем использовать стандартную библиотеку socketserver для создания сокет-серверов в ООП стиле.
Используйте готовые библиотеки, проверенные временем. Такие библиотеки позволят вам создавать стабильные и надежные сокет-сервера/клиенты, написав всего лишь несколько строк кода. В то же время данные библиотеки предоставляют возможность удобной конфигурации ваших сокетов: порты, блокировки, таймауты и т.п.
HTTP протокол является текстовым протоколом с определенной структурой. Данный протокол- это надстройка над socket, ведь по своей сути мы открываем socket-соединение и обмениваемся данными, закрывая его по завершению.
HTTP протокол реализует 9 различных методов: OPTIONS, GET, HEAD, POST, PUT, PATCH, DELETE, TRACE, CONNECT. Каждый из методов предназначен для конкретной задачи, например, GET- для получения данных, а PUT для обновления данных. Каждый метод имеет свои особенности и отличия.
Существует важное отличие POST метода от GET метода- размер передаваемых данных GET методом ограничен и составляет 8 килобайт. Объем данных, передаваемый методом POST исчисляется мегабайтами и как плюс, всегда можно увеличить это значение.
Данные, передаваемые методом GET, передаются в URL строке браузера. Данные передаваемые методом POST, передаются в теле запроса (стандартный потов ввода).
Чтобы понять, успешно ли завершился наш запрос, мы можем использовать статус коды.
200-ые статусы означают успешность запросов. Ошибки сервера- 500-ые. Ошибки данных
передаваемых клиентами- 400-ые.
Язык Python содержит в своей стандартной библиотеке инструменты для работы с HTTP-
библиотека urllib.
Закрепление материала
Что такое сетевая модель OSI и из чего она состоит?
Почему в ряде задач лучше использовать протокол TCP вместо UDP?
В чем отличие протоколов TCP и UDP?
Какой тип сокетов можно использовать, если вы хотите наладить взаимодействие между
двумя программами в рамках одного сервера?
За что отвечает константа socket.AF_INET?
За что отвечает константа socket.AF_UNIX?
Что такое HTTP протокол и из чего он состоит?
Средства обучения: Python3.6, PyCharm
Обзор, цель и назначение урока
Научить студентов писать сетевые приложения на языке Python. Дать базовые знания сетевой модели OSI и её уровней, а также научить создавать собственные socket-сервера/клиенты. Изучить протокол HTTP. Дать базовые знания данного протокола и его особенностей, а также научить обрабатывать HTTP сообщения с использованием языка Python.
Изучив материал данного занятия, учащийся сможет:
Понимать основы сетевой модели OSI.
Разрабатывать UDP/TCP socket-сервера.
Разрабатывать UDP/TCP socket-клиенты, как для собственных, так и для сторонних socket-
серверов.
Понимать протокол HTTP.
Понимать типы запросов, их особенности и ограничения.
Формировать запросы к HTTP серверам и обрабатывать ответы от них.
Использовать стандартную библиотеку urllib.
Использовать стороннюю библиотеку requests.
Создавать программы на языке Python, позволяющие автоматизировать обработку
ответов.
Содержание урока
1. Основы сетевой модели OSI и её уровней.
2. Понятие адресации (IP и Port) и что такое socket.
3. Описание протокола UDP.
4. Создание UDP клиента/сервера.
5. Создание TCP клиента/сервера и сравнение с UDP.
6. Блокирующие и неблокирующие режимы работы socket.
7. ООП подход при создании socket-серверов используя библиотеку socketserver.
8. Создание простого socket-сервера средствами фреймворка Twisted.
9. Что такое протокол HTTP, как его использовать и основные типы запросов.
10. Понятие заголовков и статус кодов.
11. Типы HTTP запросов и их особенности.
12. Создание socket для демонстрации заголовков и ответов сервера.
13. Стандартная библиотека языка Python- urllib.
14. Библиотека requests.
15. Конфигурация библиотеки urllib: размер, pull-а соединений и режимы работы.
Резюме
Модель OSI подробно описывает работу сети. Каждый уровень данной модели решает свою конкретную задачу, будь то логическая адресация, шифрование или передача данных по оптоволокну. Каждый уровень является частью единой модели.
Полный адрес компонента сети состоит из IP и порта и записывается следующим образом 127.0.0.1:80.
UDP протокол является ненадёжным протоколом передачи данных. Пакеты, отправленные с использованием данного протокола, могут быть потеряны или же нарушен их порядок при получении. Нет никакой гарантии 100%-ной доставки пакетов.
TCP протокол является надёжным протоколом передачи данных. Данный протокол осуществляет так называемое рукопожатие и перед передачей/получением данных должен установить соединение с конечным узлом сети.
В стандартной библиотеке языка Python существует библиотека socket, которая позволяет создавать socket-сервера и socket-клиенты.
Для создания socket-серверов наиболее удобным подходом является ООП. Это необязательное требование, однако ООП подход предоставляет более удобный интерфейс для обработки запросов и новых подключений. Мы можем использовать стандартную библиотеку socketserver для создания сокет-серверов в ООП стиле.
Используйте готовые библиотеки, проверенные временем. Такие библиотеки позволят вам создавать стабильные и надежные сокет-сервера/клиенты, написав всего лишь несколько строк кода. В то же время данные библиотеки предоставляют возможность удобной конфигурации ваших сокетов: порты, блокировки, таймауты и т.п.
HTTP протокол является текстовым протоколом с определенной структурой. Данный протокол- это надстройка над socket, ведь по своей сути мы открываем socket-соединение и обмениваемся данными, закрывая его по завершению.
HTTP протокол реализует 9 различных методов: OPTIONS, GET, HEAD, POST, PUT, PATCH, DELETE, TRACE, CONNECT. Каждый из методов предназначен для конкретной задачи, например, GET- для получения данных, а PUT для обновления данных. Каждый метод имеет свои особенности и отличия.
Существует важное отличие POST метода от GET метода- размер передаваемых данных GET методом ограничен и составляет 8 килобайт. Объем данных, передаваемый методом POST исчисляется мегабайтами и как плюс, всегда можно увеличить это значение.
Данные, передаваемые методом GET, передаются в URL строке браузера. Данные передаваемые методом POST, передаются в теле запроса (стандартный потов ввода).
Чтобы понять, успешно ли завершился наш запрос, мы можем использовать статус коды.
200-ые статусы означают успешность запросов. Ошибки сервера- 500-ые. Ошибки данных
передаваемых клиентами- 400-ые.
Язык Python содержит в своей стандартной библиотеке инструменты для работы с HTTP-
библиотека urllib.
Закрепление материала
Что такое сетевая модель OSI и из чего она состоит?
Почему в ряде задач лучше использовать протокол TCP вместо UDP?
В чем отличие протоколов TCP и UDP?
Какой тип сокетов можно использовать, если вы хотите наладить взаимодействие между
двумя программами в рамках одного сервера?
За что отвечает константа socket.AF_INET?
За что отвечает константа socket.AF_UNIX?
Что такое HTTP протокол и из чего он состоит?
Комментарии