51
Протокол HTTP Евгений Концевой, руководитель СЕО проектов, учебный центр ТопЭксперт

Урок 20: Протокол HTTP - Евгений Концевой

  • Upload
    -

  • View
    2.157

  • Download
    1

Embed Size (px)

DESCRIPTION

Содержание: - Назначение протокола - Методы - Коды - Редиректы - Ошибка 404 - Заголовки Более подробную информацию Вы можете получить на полном курсе SEO: http://www.topexpert.pro/seo-kurs.html

Citation preview

Page 1: Урок 20: Протокол HTTP - Евгений Концевой

Протокол HTTPЕвгений Концевой, руководитель СЕО проектов, учебный центр ТопЭксперт

Page 2: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой В SEO чуть больше года

Опыт работы – как на стороне заказчика, так и в SEO-агентстве.

Специализация: продвижение порталов, интернет магазинов, программирование и внедрение стратегий. Работал с проектами cian.ru, keramogranit.ru, buyreklama.ru, aksline.ru и др.

Выпускник 2-го потока курсов ТопЭксперт

Page 3: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

ТопЭксперт – это Учебный центр по SEO с

эффективной программой обучения.

Образовательный сайт, содержащий справочную информацию.

Группа экспертов, оказывающих услуги аудита, консультаций и продвижения сайтов.

Page 4: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Миссия

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

• Для специалистов: предоставить возможность получения доступного дистанционного профессионального образования в сфере IT.

• Для компаний: поставлять квалифицированные кадры, обучать сотрудников.

• Для экспертов: предоставить возможность экспертам быть понятыми и услышанными, способствовать повышению дохода и востребованности.

• Для технологий: создать среду для роста специалистов, способных создавать новые технологии.

Page 5: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Рассказать о HTTP протоколе и научить работать с ним, используя основные методы

Цели вебинара

Page 6: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Схема занятия

Page 7: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Назначение протокола HTTPHTTP – протокол прикладного уровня, предназначенный для передачи данных от клиента к серверу и наоборот.

Примеры других протоколов того же уровня – FTP, SMTP, NTP

Page 8: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Окно авторизации по FTP

Page 9: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Получаем список файлов и используем браузер в качестве ftp клиента

Page 10: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Пакет данных HTTP протокола состоит из 3 основных элементов

Стартовая строка — определяет тип сообщения;

Заголовки— параметры передачи и другие сведения;

Тело сообщения — непосредственно данные сообщения.В частности – тело, это html код запрашиваемой страницы

Page 11: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Стартовая строкаВключает в себя метод обращения на сервер, ссылку на ресурс и версию протокола

GET topexpert.pro HTTP/1.1

метод ссылка версия

Версии• HTTP/0.9• HTTP/1.0• HTTP/1.1

Page 12: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

МетодыGET – самый популярный метод. Запрашивает содержимое ресурса по ссылке

Особенность – передача параметров через URL

http://keramogranit.ru/news.html

URL без параметров

Page 13: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

http://keramogranit.ru/catalog.24.html?limit=45&sort=asc

URL с параметрами

Параметры:• limit=45• sort=asc

Передача параметров через GET запрос – одна из причин возникновения дубликатов страниц

Page 14: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

POST – запрос с передачей данных от пользователя. Параметры передаются в теле сообщения и не портят урл

Page 15: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

<form action=“index.php" method=“post">

Средствами HTML и JS можно передать параметры, если использовать скрытые поля формы, например

<input type="hidden" name=“sort" value=«asc">

Page 16: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

HEAD – похож на GET. Применяется для проверки функционирования ресурса

PUT – применяется для отправки файлов на сервер. Метод не кэшируется

Другие методы – DELETE, CONNECT, TRACE, LINK, UNLINK, PATCH

Page 17: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Коды ответов сервера

В ответ на http пакет от клиента, сервер посылает свой пакет данных, где и содержится код ответа.

2xx – совокупность результатов успешного выполнения

3xx – перенаправления (redirections)

4xx – статусы ошибки запрашиваемого ресурса

5xx – серверные ошибки

HTTP/1.1 200 OK

Page 18: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Коды 2xx

Самый распространённый код 200 - OK

201 – создан новый ресурс. Чаще всего после PUT

206 – сервер вернул часть запрошенного содержимого

Другие коды

202 Accepted, 203 Non-Authoritative Information, 204 No Content, 205 Reset Content

Page 19: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Коды 3xx

300 Multiple Choices – сервер возвращает страницу с набором ссылок

301 Moved Permanently – перемещён окончательно

302 Moved Temporarily – перемещён временно или найден

303 See Other – запросить по другой ссылке, методом GET 

304 Not Modified – не изменён. Ответ на запрос с датой изменения

305 Use Proxy – ресурс следует запросить через прокси сервер

Page 20: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Редиректы

А Б301

Склейка сайтов

Удаление дублей

Удаление 404 из индекса

Page 21: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Варианты решения:

1) Файл .htaccess2) PHP код3) JS

htaccess строится на регулярных выражениях и тяжело воспринимается иногда

Page 22: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

.htaccess

Скриншот

Page 23: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

RewriteEngine On – разрешение преобразований

# - комментарий

Фрагмент htaccess джумлы

Page 24: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Постраничные редиректы

Редиректы со страниц с GET параметрами на страницы с ЧПУ

Page 25: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Проблему www можно решить так

RewriteCond %{HTTP_HOST} ^www.site.ru$ [NC]RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Обратно

RewriteCond %{HTTP_HOST} !^www.site.ru$ [NC]RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]

Page 26: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

PHP редиректы

Код редиректов зачастую достаточно вставить в самое начало головного php скрипта.

Php код ограничивается тегом

<?php…?>

<?…?>

или

Page 27: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

header("HTTP/1.1 301 Moved Permanently"); header("Location: http://site.ru"); die();

Перенаправление на главную страницу любого сайта

Функция header – отправляет http заголовки

Функция die – завершает выполнение скрипта

Page 28: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

if (strpos($_SERVER['REQUEST_URI'], ‘newsid=26') !== false) { header("HTTP/1.1 301 Moved Permanently"); header("Location: /fobii-i-strahi.html"); die();}

Перенаправление с внутренних страниц на главную

$_SERVER['REQUEST_URI'] – глобальная переменная, которая содержит URL данной страницы

strpos – функция, которая проверяет вхождение newsid=26 в URL страницы

Page 29: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

if ($_SERVER['REQUEST_URI'] != '/'){ header("HTTP/1.1 301 Moved Permanently"); header("Location: /"); die();}

Перенаправление с внутренних страниц на главную

Page 30: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

<script type="text/javascript">

document.location.href = 'http://site.ru';

</script>

JS редирект

Таким образом можно перенаправить пользователя на другую страницу но код ответа будет 200

Page 31: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Обнаружить редиректы на вашем сайте можно с помощью системы сайтрепорт

Обнаружение редиректов

Page 32: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Коды 4xx

400 Bad Request – сервер обнаружил ошибку в запросе от клиента

401 Unauthorized – ответ на запрос от неавторизованного пользователя

403 Forbidden – доступ к ресурсу запрещён

404 Not Found – ресурс не найден 

405 Method Not Allowed – метод неприменим к данному ресурсу

406 Not Acceptable – ресурс не удовлетворяет характеристикам запроса

408 Request Timeout – сервер сбросил соединение. Возникает при передаче файлов

410 Gone – ресурс удалён

Page 33: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Ошибка 404

Самый распространённый вариант ошибки

Вывод данной ошибки нужно настроить обязательно

ErrorDocument 404 http://site.ru/404.html

Директива для настройки через htaccess

Page 34: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Варианты верстки 404

alawar.ru

Page 35: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

wikimart.ru

Page 36: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Отчёт сайтрепорта по ошибкам 4**

Page 37: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Коды 5xx

501 Not Implemented – сервер не поддерживает метод, переданный в запросе

502 Bad Gateway – неверный ответ от вышестоящего сервера

503 Service Unavailable – услуга недоступна. Часто возникает при перегрузках

504 Gateway Timeout – вышестоящий сервер сбросил соединение

505 HTTP Version Not Supported – заданная версия http не поддерживается

507 Insufficient Storage – невозможно выделить память, нет места

Page 38: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Из дипломной работы Александра Касьянова, выпускника 7-го потока профессионального курса SEO

Page 39: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Заголовки HTTP

Так называемые параметры HTTP сообщения

Пример

Page 40: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Location – ссылка, по которой должен перейти клиент

header("HTTP/1.1 301 Moved Permanently"); header("Location: /");

User-Agent – имя клиента

Примеры• Opera/9.60 (J2ME/MIDP; Opera Mini/4.2.14912/812; U; ru) Presto/2.4.15• IBM-WebExplorer-DLL/v1.1h• Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko/20100101

Firefox/19.0

Page 41: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

User-Agent некоторых ботов

• Googlebot-Image: Googlebot-Image/1.0

• Googlebot alternate: Mozilla/5.0 (compatible; googlebot/2.1; +http://www.google.com/bot.html)

• Yandex: Mozilla/5.0 (compatible; YandexBot/3.0)

• YandexImages: Mozilla/5.0 (compatible; YandexImages/3.0)

• YandexDirect: Mozilla/5.0 (compatible; YandexDirect/3.0)

Page 42: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

echo $_SERVER['HTTP_USER_AGENT'];

PHP пример вывода User-Agent пользователя на экран

Меняем User-Agent в мозилле

Page 43: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Добавляем новую переменную

Page 44: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Представляемся ботом Яндекс Директ

Настройки

Page 45: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Результат

Page 46: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

Поле Referer – страница, с которой пришёл пользователь

Referer: http://yandex.ru/yandsearch?text=%D0%BA%D1%83%D1%80%D1%81%20%D1%81%D0%B5%D0%BE&clid=1909644&lr=54

Переходим на любой сайт из выдачи

Page 47: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

echo $_SERVER['HTTP_REFERER'];

Вывод Referer на экран в PHP

Проверка кодов ответа и многих других параметров

http://mainspy.ru/otvet_servera

Плагин HttpFox

Утилита WireShark

Page 48: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

http://topexpert.pro/seo-kurs.html

Page 49: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

http://topexpert.pro/seo-kurs.html

Page 50: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

http://topexpert.pro/seo-kurs.html

Page 51: Урок 20: Протокол HTTP - Евгений Концевой

Евгений Концевой

HTTP - хороший, любите его»

Евгений Концевой - руководитель СЕО проектов ТопЭксперт

[email protected]

• skype:eugkont

• http://www.topexpert.pro/

«