Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
student_ Гость
|
Добавлено: Пт Дек 20 2002 06:03 Заголовок сообщения: HTTP,TCP и IP |
|
|
Помогите, пожалуйста ответить на несколько вопросов: 1. Имеется ТСР-пакет. В каком поле заголовка TCP (IP?) определяется,что он содержит сообщение именно в формате НТТР? Какие значения может принимать это поле? 2. Данные заполненной формы присланы на сервер, на котором имеется прога - обработчик написанная допустим на PERL. Каким образом данные передаются этой проге? Предполагается, что ответ на этот вопрос как-то связан с предыдущим вопросом |
|
Вернуться к началу |
|
|
SergeyK+
Зарегистрирован: 19.10.2002 Сообщения: 224 Откуда: Москва
|
Добавлено: Пт Дек 20 2002 10:28 Заголовок сообщения: Нигде, это протоколы разных уровней (это косается и 2-го вопроса). Залезь на сайт BILIM и почитай о стеке протоколов TCP/IP и о |
|
|
. |
|
Вернуться к началу |
|
|
ALEX_SE Гость
|
Добавлено: Пт Дек 20 2002 10:45 Заголовок сообщения: Re: HTTP,TCP и IP |
|
|
1. Имеется ТСР-пакет. В каком поле заголовка TCP (IP?) определяется,что он содержит сообщение именно в формате НТТР? - Ни в каком. Протоколо TCP не знает что он передает. Ему пофиг. Его задача - организовать надежные прием и передачу данных на своем уровне. А что там под ним или над ним - его не касается... Есть такое понятие "инкапсуляция"... Имеется поле "номер порта получателя" длиной 2 байта. А уже протоколы верхнего уровня использующие TCP "прослушивают" нужный порт и понимают что это "для них". А вот в поле IP-пакета есть поле "протокол верхнего уровня", занимает 1 байт, номера протоколов можешь посмотреть в RFC №790 "Assignad Numbers"
Какие значения может принимать это поле? - Двоичные Номер порта. 0-65536
2. Данные заполненной формы присланы на сервер, на котором имеется прога - обработчик написанная допустим на PERL. Каким образом данные передаются этой проге? - Методом POST. Есть куча способов. Ты уточник конкретно на каком уровне это тебя интересует... на уровне протоколов или на уровне функционирования ОС и ПО. Тут уже несколько сложнее. Тут реализация на программном уровне... ты по HTTP протоколу обращаешся к скрипту, он запускается, берет нужные параметры из строки запуска или ещё откуда и что-то там делает... если вкратце.
Предполагается, что ответ на этот вопрос как-то связан с предыдущим вопросом - В этой жизни вообще всё взаимосвязано.
Народ, если я некорректно что-то сказал или где-то неправ то поправьте. |
|
Вернуться к началу |
|
|
SergeyK+
Зарегистрирован: 19.10.2002 Сообщения: 224 Откуда: Москва
|
Добавлено: Пт Дек 20 2002 11:26 Заголовок сообщения: угу, а вообще есть такая классная книжка "Мир протоколов", на билиме лежат выдержки из нее, если кому надо могу подел |
|
|
. |
|
Вернуться к началу |
|
|
Dmitry.Karpov http://prof Гость
|
Добавлено: Пт Дек 20 2002 17:14 Заголовок сообщения: Поучиться бы Вам на моих курсах... |
|
|
1) IP-пакет, если он TCP или UDP, кроме IP-адресов источника и назначения несет в себе еще и номера портов источника и назначения - вот в них и определяется программа-получатель пакета (в случае UDP) или передаваемых в пакете данных (в TCP программа-получатель не оповещается о нарезке данных на пакеты). Для HTTP выделен порт:80; кроме него используют 810[0-5] (© Леша Тутубалин).
2) В переменных окружения и через stdin независимо от языка программирования, но зависимо от метода POST или GET. В Perl есть библиотека, котрая разбирает это на отдельные параметры. |
|
Вернуться к началу |
|
|
ALEX_SE Гость
|
Добавлено: Пт Дек 20 2002 17:46 Заголовок сообщения: Re: Поучиться бы Вам на моих курсах... |
|
|
1) IP-пакет, если он TCP или UDP... Не очень тебя понял. IP, TCP, UDP - разные протоколы, последние 2 работают поверх IP. Где тогда в IP пакете номера портов? И Где в TCP пакете адрес источника и назначения? Или ты и имеешь ввиду пакеты протоколов TCP и UDP вложенных в пакет IP говоря так? |
|
Вернуться к началу |
|
|
Dmitry.Karpov http://prof Гость
|
Добавлено: Пт Дек 20 2002 18:03 Заголовок сообщения: Пакет IP бывает TCP, UDP, ICMP, BGP или еще более ста протоколов |
|
|
Любой пакет протоколов TCP, UDP, ICMP и т.д. является IP-пакетом, не так ли? IP-адреса и порты источника и назначения, а также TTL и прочая служебная информация находятся в заголовке - а где же еще? Просто в ICMP данные по смещению, по которому в TCP и UDP находятся номера портов, интерпретируются иначе (не как номера портов). |
|
Вернуться к началу |
|
|
ALEX_SE Гость
|
Добавлено: Пт Дек 20 2002 18:07 Заголовок сообщения: Re: Пакет IP бывает TCP, UDP, ICMP, BGP или еще более ста протоколов |
|
|
Всё, понял тебя. Я когда отвечал имел ввиду чисто пакеты протоколов IP, TCP и UDP. И, следовательно, вся служебная информация находится действительно в заголовке пакета IP + одного из перечисленных тобой протоколов. Который можно рассматривать как общий, тогда всё встает на свои места в твоем ответе |
|
Вернуться к началу |
|
|
student_ Гость
|
Добавлено: Пт Дек 20 2002 18:37 Заголовок сообщения: Re: Поучиться бы Вам на моих курсах... |
|
|
1. А я где-то читал, что можно использовать не только 80-й порт: http:/any_adress.ru/index.html:8080. Что же будет в этом случае? 2. Я так понимаю что-то слушает 80-й порт и в зависимости от метода пересылает тому или иному обработчику? |
|
Вернуться к началу |
|
|
ALEX_SE Гость
|
Добавлено: Пт Дек 20 2002 19:03 Заголовок сообщения: Re: Поучиться бы Вам на моих курсах... |
|
|
1. А я где-то читал, что можно использовать не только 80-й порт: http:/any_adress.ru/index.html:8080. Что же будет в этом случае? - В данном случае HTTP сервер сам переделает номер порта. Он настраивается специально для этого. Это нужно например когда на одном сервере, с одной DNS зоной нужно разместить разные странички. HTTP сервер на порту по умолчанию выдаст тебе одну страничку а на другом соответственно другую. Это один из вариантов. Кстати, Для Дмитрия Карпова - не мог ли ты подробнее это описать? для чего это ещё надо?
2. Я так понимаю что-то слушает 80-й порт и в зависимости от метода пересылает тому или иному обработчику? - Именно! Дмитрий тебе ответил что конкретно. В некоторых случаях обработчик и слушает (например Winpopup). А если точнее то ты устанавливаешь соединение с машиной по какому-то из портов и нужная программа просто отвечает на запрос установки соединения. |
|
Вернуться к началу |
|
|
Dmitry.Karpov http://prof Гость
|
Добавлено: Пт Дек 20 2002 20:59 Заголовок сообщения: Отвечаю на оба вопроса |
|
|
Любая программа может "слушать" любой порт (ну, при условии, что у нее есть полномочия - так в Unix порты 0..1023 может слушать лишь программа, имеющая права root; еще есть демон inetd, который запускает программу при обращении на заданный порт, но это здесь несущественно). Так вот, при обращении к порту я в реальности получаю доступ к программе, а дальше она определяет, какие протоколы будут поддерживаться на этом соединении (типа на разных телефонных номерах сидят модемы, и на каждом модеме - программа, готовая принять и обслужить звонок; аналогия один-в-один). Если клиент хочет использовать один протокол, а программа-сервер на порту, по которому он обратился, работает по другому протоколу, то ничего работать не будет - автораспознавания протоколов нет.
Леша Тутубалин предлагает перекодировку text/plain и text/html Win1251/KOI8-r/DOScp866/etc в зависимости от порта, на на порту:80 висит автоопределение по заголовку "X-Agent" с перенаправлением на соотвествующий порт 810[0..5]. Загляни на http://apache.lexa.ru - он рузеz. |
|
Вернуться к началу |
|
|
ALEX_SE Гость
|
Добавлено: Сб Дек 21 2002 18:55 Заголовок сообщения: Re: Поучиться бы Вам на моих курсах... |
|
|
Верно, сходи на http://apache.lexa.ru, узнаешь много интересного |
|
Вернуться к началу |
|
|
student_ Гость
|
Добавлено: Пн Дек 23 2002 18:55 Заголовок сообщения: HTTP,TCP и IP |
|
|
Всем огромное спасибо. Курсач сдан на "отл."!!!! |
|
Вернуться к началу |
|
|
|