реклама на сайте
подробности

 
 
> Генерируем HTML-страницу на SIM300D...
mapic
сообщение Jun 5 2009, 14:09
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 8-06-07
Пользователь №: 28 294



Необходимо сгенерировать простенькую HTML-страницу с несколькими текстовыми строками на основе сервера SIM300D, а потом переодически просматривать эту страницу в браузере на удаленом ПК...

Вкратце опишу как все делаю: запускаю GPRS и сервер на SIM300D, читаю IP. Запускаю браузер на ПК и ввожу в строку адреса IP и порт GPRS-модема (например http://94.153.149.204:2020).

Получаю запрос от браузера:

GET / HTTP/1.1
User-Agent: Opera/9.27 (Windows NT 5.1; U; ru)
Host: 94.153.149.204:2020
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, imag
e/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: deflate, gzip, x-gzip, identity, *;q=0
Connection: Keep-Alive
REMOTE IP: 77.120.85.218

В ответ вывожу простенький HTML-код сгенерированый в дрим-вивере:

at+cipsend
> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/
DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=DOS-720" />
<title></title>
</head>

<body>
HELLO WORLD !!!
</body>
</html>

SEND OK

Сообщение проходит но браузер ничего не показывает и продолжает "висеть". Остановка браузера тоже не помагает, содержимое страницы так и не отображается!

Пробовал и по "взрослому" добавлять перед HTML-кодом ответ серрвера (так как настоящие отвечают):

HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=UTF-8
Content-Length: 1350
Date: Wed, 03 Jun 2009 16:44:39 GMT
Server: GFE/2.0

Тоже не помагает... и где же могут быть "грабли"...?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 10)
YAM
сообщение Jun 5 2009, 14:25
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 7-07-04
Из: Ukraine
Пользователь №: 291



Так должно быть 200 OK, а не 400 Bad Request


--------------------
Go to the top of the page
 
+Quote Post
mapic
сообщение Jun 6 2009, 13:23
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 8-06-07
Пользователь №: 28 294



... да точно должно быть 200 ОК .... взял плохой ответ от сервера...

Но как я понял дело не в этом... потому как мне кажется HTML-страница должна приниматся браузером и без заголовка... скорее всего что то неверно с окончанием... кто знает какими символами должна заканчиватся HTML-страница <CR> <LF> или может еще какими то?

PS. Заметил что если передать два раза подряд HTML-код (без заголовка) и нажать в браузере кнопку стоп то отображается двойное содержимое страницы (тоесть то что мы передали два раза если посмотреть исходный текст в браузере)...? Если же передать HTML-код один раз и нажать стоп то браузер ничего не показывает и не принимает вообще даных (ето видно если посмотреть исходный текст страницы в окне браузера)...

...хотя заголовок наверное тоже важен, ведь в нем указывается общая длина передаваемого кода от сервера браузеру...
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 6 2009, 14:12
Сообщение #4


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



В двух словах: минимум Вам нужно ответить:
Код
HTTP/1.1 200 OK
Content-Type: text/html
Connection: close
Cache-Control: no-cache

<HTML>...</HTML>


Пустая строка между последней строкой заголовка и началом собственно html-содержимого обязательна. Строки разделяются парой символов 13,10 ("\r\n").

А вообще - курите соответствующий RFC.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
mapic
сообщение Jun 7 2009, 13:14
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 8-06-07
Пользователь №: 28 294



Заголовок помог... теперь сраница передается с первого раза, но кнопку остановки на браузере всеравно нужно нажимать что бы страница отобразилась!? Может в заголовке нужно еще и передать длину HTML-кода в байтах? - может быть через то что браузер не знает длины HTML-сообщения он продолжает ждать даные?

Также интересует нужно ли передавать символы 13,10 ("\r\n") после каждой строчки HTML-кода?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 7 2009, 18:44
Сообщение #6


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
но кнопку остановки на браузере всеравно нужно нажимать что бы страница отобразилась!?


После того, как Вы просунули весь контент, необходимо закрыть сокет со стороны сервера.

Никаких лишних переводов строки в собственно контент вставлять не надо.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
mapic
сообщение Jun 13 2009, 15:42
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 8-06-07
Пользователь №: 28 294



Попробовал сделать HTML-страницу посложнее несколько строк, с фоном, форматированием текста и др. получилось около 800 байт. Дело пошло лучше. После отправки заголовка и собствено самого HTML-кода, содержимое появляется в окне браузера, сразу же после подачи команды SEND. Но браузер продолжает загружать HTML-страницу (это видно по строке состояния). Обрыв соединения со стороны HTML-сервера приводит к тому что на Експлорере и Мазиле содержимое страницы исчезает "Не возможно отобразить страницу", у Оперы содержимое остается на экране и после разрыва соединения она самостоятельно продолжает попытки соединения и отправляет запросы на сервер...?

Может все таки в заголовке нужно отправить еще и длину HTML-контента, что бы браузер окончательно "успокоился" и перестал загружать страницу?
Go to the top of the page
 
+Quote Post
YAM
сообщение Jun 14 2009, 13:54
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 7-07-04
Из: Ukraine
Пользователь №: 291



Цитата(mapic @ Jun 13 2009, 18:42) *
.................
Может все таки в заголовке нужно отправить еще и длину HTML-контента, что бы браузер окончательно "успокоился" и перестал загружать страницу?

Для HTML контента достаточно после того, как Вы отдали страницу просто закрыть соединение со стороны сервера... Вам об этом уже писали...
А вообще гляньте пример, ну хотя бы web сервера, реализованного на UIP.


--------------------
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 14 2009, 16:04
Сообщение #9


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Может все таки в заголовке нужно отправить еще и длину HTML-контента, что бы браузер окончательно "успокоился" и перестал загружать страницу?


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


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
mapic
сообщение Jun 21 2009, 15:17
Сообщение #10


Частый гость
**

Группа: Участник
Сообщений: 159
Регистрация: 8-06-07
Пользователь №: 28 294



Цитата(YAM @ Jun 14 2009, 16:54) *
Для HTML контента достаточно после того, как Вы отдали страницу просто закрыть соединение со стороны сервера... Вам об этом уже писали...
А вообще гляньте пример, ну хотя бы web сервера, реализованного на UIP.


... соединение закрываю! После этого содержимое (HTML-страница) в окне браузера вообще пропадает ("Невозможно подключится к удаленому серверу")??

Цитата(Rst7 @ Jun 14 2009, 19:04) *
Не нужно. Нужно сниффером глянуть на клиентской стороне, какие данные там реально летят. Есть мнение, что они неправильные.


...это как? а где взять соответствующую программу?
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jun 21 2009, 15:20
Сообщение #11


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
...это как? а где взять соответствующую программу?


Ключевое слово WireShark.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 21:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01458 секунд с 7
ELECTRONIX ©2004-2016