Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос про принцип работы HTTP


Страницы:   1 2 3

Суслик ©   (2006-11-11 01:11:00) 

Здравствуйте!

1. Вводная.
Принимая на *стороне сервера* запрос TCP нужно быть готовым, что он прийдет не весь сразу, а частями. Это факт. Когда когда-то я писал свои тестовые сервера (в целях изучения) я применял следующий протокол:
а) мой сервер ждал 4 байта - длина сообщения.
б) после получения четырех байт - сервер читал сообщения, с учетом того, что сообщение может прийти не сразу.

2. Вопрос.
Сейчас я начал разбираться с HTTP.
Это вроде текстовый протокол. Делаю я это так - с помощью TIdTCPServer ловлю все, что мне посылает браузер.
Насколько я понял, HTTP - это чисто протокол. Я не смог заметить, что каким-то образом передается длина сообщения.

Вопрос
Как сервер HTTP понимает сколько же ему читать из сокета?

PS. Прошу прощения за ламерский вопрос :)


SergP   (2006-11-12 09:54:00) [1]

> [42] DVM ©   (11.11.06 16:26)
> CRLF - не надо называть пустой строкой. Т.к. в терминах
> Delphi это далеко не пустая строка.


Это в терминах Дельфи..., которые на данный момент к сабжу не особо имеют отношение.


Anatoly Podgoretsky   (2006-11-11 16:48:00) [2]

> DVM  (11.11.2006 16:26:42)  [42]

А серверам плевать, что там Дельфи считает и что/кто это такое.


DVM   (2006-11-11 16:26:00) [3]

CRLF - не надо называть пустой строкой. Т.к. в терминах Delphi это далеко не пустая строка.


Anatoly Podgoretsky   (2006-11-11 14:02:00) [4]

> SergP  (11.11.2006 12:43:39)  [39]

Я ночью много написал, но все пропало, повторять не охота.
В кратче все регламентируется RFC остальное фантазии.
Если коротко, то заголовок от данных отделяется одной пустой строкой и сообщение заканчивается точкой.


Anatoly Podgoretsky   (2006-11-11 13:55:00) [5]

> SergP  (11.11.2006 12:43:39)  [39]

> А 2 CRLF - это типа не две пустые строки?

Признак окончания пустая строка, в соответствии с RFC
и ничего более.

Конечно, нет, можно хоть десять, но только первая пустая строка является признаком, все остальные данными.
Тут фантазировать не надо, документ одназначно говорит и никаких двойных LF


SergP   (2006-11-11 12:43:00) [6]

> [26] Орион ©   (11.11.06 09:19)
> > [25] SergP ©   (11.11.06 06:10)
>
> нет, одна. 2 CRLF :) (а для некоторых серверов просто 2
> LF).


А 2 CRLF - это типа не две пустые строки?

Ну хорошо.Тогда:
признак окончания заголовка запроса: 1 CRLF
а признак окончания запроса: 2 CRLF


atruhin   (2006-11-11 10:11:00) [7]

> [37] Anatoly Podgoretsky ©   (11.11.06 09:57)

Еще пару раз, чтоб понятнее было.


Anatoly Podgoretsky   (2006-11-11 09:57:00) [8]

Удалено модератором


Anatoly Podgoretsky   (2006-11-11 09:57:00) [9]

Удалено модератором


Anatoly Podgoretsky   (2006-11-11 09:57:00) [10]

Удалено модератором


Anatoly Podgoretsky   (2006-11-11 09:57:00) [11]

Удалено модератором


Anatoly Podgoretsky   (2006-11-11 09:57:00) [12]

Удалено модератором


Anatoly Podgoretsky   (2006-11-11 09:57:00) [13]

Удалено модератором


Anatoly Podgoretsky   (2006-11-11 09:57:00) [14]

Удалено модератором


Anatoly Podgoretsky   (2006-11-11 09:57:00) [15]

Удалено модератором


Anatoly Podgoretsky   (2006-11-11 09:57:00) [16]

Удалено модератором


Anatoly Podgoretsky   (2006-11-11 09:57:00) [17]

Удалено модератором


Anatoly Podgoretsky   (2006-11-11 09:57:00) [18]

Удалено модератором


Орион   (2006-11-11 09:19:00) [19]

> [25] SergP ©   (11.11.06 06:10)

нет, одна. 2 CRLF :) (а для некоторых серверов просто 2 LF).


SergP   (2006-11-11 06:10:00) [20]

> Т.е. - пустая строка - это признак окончания запроса?


Признак окончания запроса вроде как две пустых строки.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо