LINUX.ORG.RU
ФорумAdmin

http+html вместо страницы

 , ,


0

1

Обратились с жалобой что страница не всегда отдаётся нормально. Иногда браузер отображает страницу, а иногда вместо этого или пусто или вывод следующего характера:

Date: ...
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.6.16
Conection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset="utf-8

26b8
<!DOCTYPE html>
<html lang="ru">
<head>
	<meta charset="utf-8">
	...

Скриншот: https://img-fotki.yandex.ru/get/6611/22277664.3/0_a4f78_57a58bfe_orig , на скриншоте хром.

То есть, браузер выводит сначала вывод http и затем вывод html. То же, что можно получить обратившись телнетом, с некоторыми отличиями:

$ telnet site.ru 80
Trying 1.2.3.4...
Connected to site.ru.
Escape character is '^]'.
GET / HTTP/1.0
host:site.ru

HTTP/1.1 200 OK
Date: Sat, 09 Jan 2016 09:52:08 GMT
Server: Apache/2.2.15 (CentOS)
X-Powered-By: PHP/5.6.16
Content-Length: 5876
Connection: close
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<html lang="ru">
<head>  
        <meta charset="utf-8">

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

В какую сторону стоит смотреть? Может быть в первом случае (из жалобы) что то неправильно в http заголовках?

★★★★★

Может быть проблема на стороне клиента или потери при передаче?

sin_a ★★★★★
() автор топика
Ответ на: комментарий от surefire

Второй пример это я телнетом получил. Когда понял что находится в начале и проверял. Смущает «26b8» перед <!DOCTYPE html>.

sin_a ★★★★★
() автор топика
Ответ на: комментарий от sin_a

При Transfer-encoding: chunked, это нормально, означает количество байт передачи текущей порции.

surefire ★★★
()
Ответ на: комментарий от anonymous

Если это так то проблема на стороне клиента. Но что бы говорить ему об этом, нужно быть в этом уверенным и что либо рекомендовать. И кроме того надо будет уточнить нет ли у него такой картины на других сайтах.

На чём основано предположение? И где можно искать: провайдер (кривое dpi), локальный компьютер (проверить на вирусы), злой сосед.

sin_a ★★★★★
() автор топика
Ответ на: комментарий от sin_a

Можно это проверить так: поднять туннель или сгенерить персональный сертификат.

Но для начала просто siege http://site.com подольше и анализ серверных логов, особенно на предмет «ранних/поздних» прикладных ошибок ...

anonymous
()

Советую проверить ответ сервера побайтово, может быть вместо HTTP/1.1 200 OK\r\n приходит HTTP/1.1 200 OK\r\n\r или что-то вроде.

alix ★★★★
()
Последнее исправление: alix (всего исправлений: 1)

> X-Powered-By: PHP/5.6.16

9 из 10, криворукий похапер или фреймворк (т. е. предыдущий криворукий похапер), как тут писали, отправляются заголовки, пустая строка, ещё заголовки, пустая, контент. Ищите левые print/echo/... или даже

<?php
... ?>
<?php
в коде. Насколько помню, такое может вызвать даже
     (начало файла, пустая срока)
<?php
в .php-файле

berrywizard ★★★★★
()
Ответ на: комментарий от berrywizard

Спасибо, думал что с php это не может быть связано. Плохо разбираюсь в протоколах, где могут быть но не должны быть пустые строки: между заголовками http и html?

sin_a ★★★★★
() автор топика
Ответ на: комментарий от sin_a

Вот так не должно быть:

HTTP 200 OK
Content-Type: text/html

Connection: close
Date: ...
Transfer-Encoding: chunked

<html>...
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.