# Введение в web-программирование

* Основа веба: это взаимодействие клиент-сервер
  * **клиент** — запрашивает информацию
  * **сервер** — предоставляет информацию в ответ на запрос клиента
  * *пример*: браузер и сервер сайта. Браузер запрашивает информацию, сервер сайта предоставляет информацию в ответ на запрос
* **HTTP**: протокол общения между клиентом и сервером
  * **Протокол** — набор правил. Наличие общих правил позволяет унифицировать обмен информацией — все могут общаться со всеми
* Структура HTTP:
  * запрос (**request**): метод запроса + URL + заголовки (headers) + тело (body)
  * ответ (**response**): status-code (200 OK, 404 not found и др.) + заголовки (headers) + тело (body)
* Некоторые методы запроса:
  * **GET** — взять информацию с сервера. Самый распространенный для пользователей
  * **POST** — добавить информацию на сервер
  * **UPDATE** — обновить информацию на сервере
  * **DELETE** — удалить информацию с сервера

<figure><img src="https://1822329473-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fht6R7IOuWvAQ9gEYvkFW%2Fuploads%2FQjsz5pvZCrB49KFjYwaZ%2Fhttp_request_response.png?alt=media&#x26;token=65363ae7-f8b9-4e09-b1a3-6e8bba51f77e" alt=""><figcaption><p><em>Пример HTTP запроса на сайт www.example.com/index.html и ответа с него.</em>  <em>Результат</em> — <em>загруженная HTML страница</em></p></figcaption></figure>

<figure><img src="https://1822329473-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fht6R7IOuWvAQ9gEYvkFW%2Fuploads%2FA3Ec9Ujp9AcRAI2vBkrF%2Fweb.png?alt=media&#x26;token=c2083a61-6ca2-418c-9846-d6a72a99c0da" alt=""><figcaption><p><em>Клиент-серверное взаимодействие на примере загрузки web-страницы</em></p></figcaption></figure>

&#x20;
