The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"CGI-скрипт на С"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"CGI-скрипт на С" 
Сообщение от grib Искать по авторуВ закладки on 08-Авг-05, 08:10  (MSK)
Приветствую.

Написал маленький CGI-скрипт на C (мой первый скрипт :)) и натолкнулся на интересную проблему:

~~
sd = socket();
....
fprintf(stdout, "some string");
fprintf(stdout, "some string2");
...
connect();
...
fprintf(stdout, "some string3");
...
printf("Content-Type: text/html\n\n");
...
~~

'tcpdump-ом' заметил что web-сервер(thttpd/2.25b) шлет строки "some string" и "some string2" в своих ответах. Почему это проявляется?

Спасибо!
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "CGI-скрипт на С" 
Сообщение от Дениска Искать по авторуВ закладки(??) on 08-Авг-05, 08:46  (MSK)
>fprintf(stdout, "some string");
>fprintf(stdout, "some string2");
>'tcpdump-ом' заметил что web-сервер(thttpd/2.25b) шлет строки "some string" и "some string2" в
>своих ответах. Почему это проявляется?
а не должен разве? насколько я помню весь stdout скрипта отдается клиенту.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "CGI-скрипт на С" 
Сообщение от grib Искать по авторуВ закладки on 08-Авг-05, 10:02  (MSK)
>>fprintf(stdout, "some string");
>>fprintf(stdout, "some string2");
>>'tcpdump-ом' заметил что web-сервер(thttpd/2.25b) шлет строки "some string" и "some string2" в
>>своих ответах. Почему это проявляется?
>а не должен разве? насколько я помню весь stdout скрипта отдается клиенту.
>
Я так и догадывался, но тогда почему не отдаются остальные строки, выводимые fprintf'ом ?
И второе - это никак не отражается на содержимом html страницы, видимо потому что content-type появляется позже...

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "CGI-скрипт на С" 
Сообщение от Дениска Искать по авторуВ закладки(??) on 08-Авг-05, 10:12  (MSK)
>Я так и догадывался, но тогда почему не отдаются остальные строки, выводимые
>fprintf'ом ?
в смысле какие остальные? я вижу 3 принтф-а. 1 и вторая выводят строки, вы сами сказали. какие остальные? третья?

>И второе - это никак не отражается на содержимом html страницы, видимо
>потому что content-type появляется позже...
это да.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "CGI-скрипт на С" 
Сообщение от grib Искать по авторуВ закладки on 08-Авг-05, 10:45  (MSK)
>>Я так и догадывался, но тогда почему не отдаются остальные строки, выводимые
>>fprintf'ом ?
>в смысле какие остальные? я вижу 3 принтф-а. 1 и вторая выводят
>строки, вы сами сказали. какие остальные? третья?
>
да, последний fprintf(), он никак не выводится в поток, почему?
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "CGI-скрипт на С" 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 10-Авг-05, 00:11  (MSK)
Странный у Вас код. Непонятно, чего делает connect(), и крайне
подозрительно, что Content-type:... выводится ближе к финалу.
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "CGI-скрипт на С" 
Сообщение от grib Искать по авторуВ закладки on 10-Авг-05, 04:58  (MSK)
>Странный у Вас код. Непонятно, чего делает connect(), и крайне
>подозрительно, что Content-type:... выводится ближе к финалу.
connect() нужен для соединения с демоном, и по результатам общения с демоном вывод в html.

А почему Content-type: вызвал подозрение?

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

7. "CGI-скрипт на С" 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 10-Авг-05, 21:16  (MSK)
>А почему Content-type: вызвал подозрение?

Ибо заголовок, а следовательно - должен идти вначале ;-)

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

8. "CGI-скрипт на С" 
Сообщение от grib Искать по авторуВ закладки on 13-Авг-05, 12:10  (MSK)
>>А почему Content-type: вызвал подозрение?
>
>Ибо заголовок, а следовательно - должен идти вначале ;-)
По логике программы мне не нужно выводить все подряд в html
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

9. "CGI-скрипт на С" 
Сообщение от DeadMustdie emailИскать по авторуВ закладки(??) on 13-Авг-05, 15:23  (MSK)
>>>А почему Content-type: вызвал подозрение?
>>
>>Ибо заголовок, а следовательно - должен идти вначале ;-)
>По логике программы мне не нужно выводить все подряд в html

Всё, что вы на stdout направляете, Web-сервер отправит клиенту.
Соответственно, ответ должен соответствовать по формату требованиям
протокола HTTP. А там сказано, что сперва идут заголовки в формате

   Имя1: Значение1
   ...
   ИмяN: ЗначениеN

Затем идёт пустая строка, после чего следует документ.
Поэтому вывод чего-то ещё *перед* заголовками выглядит
подозрительно, о чём я и написал выше.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру