Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Работа сервера при отдаче HTML Добавлено: 01.10.07 21:01  

Автор вопроса:  Лёня

Написан небольшой сервачек на winsock который по RequestID разделяет подключения. С текстовой частью сервера все всегда Ок, а вот с подгрузками изображений на странице все несколько хуже. То есть при их запросе они отдaются, но ИНОГДА какая то из них кожет застопориться, размеры картинок небольшие - в пределах 100Кб. Если б не работало всегда - я б докопался сам - а тут видно с теорией что то у меня не так.
Заголовки при отдаче изображений правильные ... на вид вообще все чудесно работает. Да и ИНОГДА чаще всего бывает, когда страничку перезапрашиваешь, а не первая загрузка.
Пробывал Тягу-Сервер - та же проблема. И сейчас уже вспомнил как такое же было при обновлениях локальной html странички webbrowser'ом. Тогда я думал, что это с ним какой то косяк, раз картинки то есть то нет.

Если надо что то уточнить - тока скажите ...

Ответить

  Ответы Всего ответов: 11  

Номер ответа: 1
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #1 Добавлено: 01.10.07 22:04
Расшифруй термин "застопориться".

Ответить

Номер ответа: 2
Автор ответа:
 Лёня



Вопросов: 2
Ответов: 7
 Профиль | | #2 Добавлено: 01.10.07 22:10
- это когда должна начаться прогрузка очередного изображения, а этого не происходит и загрузка страницы стопорится - причем картинка может быть любой из тех что на странице - и заголовок и обои и что то другое. Она не загружается на какой то процент, а просто не Приходит. При этом браузер ждет пока к нему таймаут не придет или рефрешь не ткнешь ...

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 02.10.07 22:32
Может в запросе размер файла не передаешь?

Ответить

Номер ответа: 4
Автор ответа:
 Лёня



Вопросов: 2
Ответов: 7
 Профиль | | #4 Добавлено: 02.10.07 22:39
передаю как Format$(FileLen(FileName),"0";)
да и обрываться мне думается он должен тогда в разных кусках ...

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 03.10.07 02:38
покажи сам запрос

Ответить

Номер ответа: 6
Автор ответа:
 Лёня



Вопросов: 2
Ответов: 7
 Профиль | | #6 Добавлено: 03.10.07 02:53
Запрос браузера (Оперы), например, такой
____________________
GET /Sources/Titler.jpg HTTP/1.1
User-Agent: Opera/9.23 (Windows NT 5.1; U; ru)
Host: 127.0.0.1
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/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
Referer: http://127.0.0.1/
Connection: Keep-Alive, TE
TE: deflate, gzip, chunked, identity, trailers
____________________

ответ на него создается такой

"HTTP/1.0 200 OK" & vbCrLf & T & _
  "Content-Length: " & Format$(Len(Page), "0";) & vbCrLf & _
  "Connection: close" & vbCrLf & vbCrLf & Page

где T в данном случаи "Content-Type: image/jpeg"
Page - содержимое файла картинки

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 04.10.07 15:47
хз чесно говоря, негде протестировать... Могу прогу посоветовать для отслеживания запросов..
https://www.fiddler2.com/Fiddler2/version.asp

Сравни чтобы в твоей запрос был такое же...

Если он действительно такой же, то может быть проблема с считыванием картинки в Page. Может быть проблема с синхронностью винсоков, т.к. запросы опера отправляет не по порядку, а одновременно для страницы и картинок. А твоя прога при одновременных запросах может загоняется где..

Ответить

Номер ответа: 8
Автор ответа:
 Лёня



Вопросов: 2
Ответов: 7
 Профиль | | #8 Добавлено: 05.10.07 00:28
Запрос проверил - был косячек с передачей Content-Type для html содержимого (Content-Type: text/html) в некоторых случаях. С изображениями тип передается всегда.
А вот про асинхронность сокетов у меня мысли были ... в моем представлении, каждый приход DataArrival(index) происходит в своем экземпляре Sub, а также создается по экземпляру всех функций к которым идет из него (Sub'a). Static и Public/Private переменных в этом месте не использую.
Вопросом по Теории пока является директива браузера Connection: Keep-Alive. То есть, после отсылки нужно ли делать Close сокету или соединение закроет браузер ?

Ответить

Номер ответа: 9
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #9 Добавлено: 05.10.07 02:08
Ну Keep-Alive это типа оставить в живых :) Т.е. после запроса/ответа соединение не разрывается, и можно пихать ещё :)

Попробуй в ответе убери Connection: close...

Ответить

Номер ответа: 10
Автор ответа:
 Лёня



Вопросов: 2
Ответов: 7
 Профиль | | #10 Добавлено: 05.10.07 02:18
Попробывал - "иногда" стало появляться почаще. Хотя и процент хорошего результата все еще присутствует.

Ответить

Номер ответа: 11
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #11 Добавлено: 05.10.07 14:52
ну тогда незнаю.. выложи прогу что-ли где-то

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам