The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
CGI-скрипт на С, !*! grib, 08-Авг-05, 08:10  [смотреть все]
Приветствую.

Написал маленький 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" в своих ответах. Почему это проявляется?

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

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

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

        • CGI-скрипт на С, !*! grib, 10:45 , 08-Авг-05 (4)
          >>Я так и догадывался, но тогда почему не отдаются остальные строки, выводимые
          >>fprintf'ом ?
          >в смысле какие остальные? я вижу 3 принтф-а. 1 и вторая выводят
          >строки, вы сами сказали. какие остальные? третья?
          >
          да, последний fprintf(), он никак не выводится в поток, почему?
          • CGI-скрипт на С, !*! DeadMustdie, 00:11 , 10-Авг-05 (5)
            Странный у Вас код. Непонятно, чего делает connect(), и крайне
            подозрительно, что Content-type:... выводится ближе к финалу.
            • CGI-скрипт на С, !*! grib, 04:58 , 10-Авг-05 (6)
              >Странный у Вас код. Непонятно, чего делает connect(), и крайне
              >подозрительно, что Content-type:... выводится ближе к финалу.
              connect() нужен для соединения с демоном, и по результатам общения с демоном вывод в html.

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

              • CGI-скрипт на С, !*! DeadMustdie, 21:16 , 10-Авг-05 (7)
                >А почему Content-type: вызвал подозрение?

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

                • CGI-скрипт на С, !*! grib, 12:10 , 13-Авг-05 (8)
                  >>А почему Content-type: вызвал подозрение?
                  >
                  >Ибо заголовок, а следовательно - должен идти вначале ;-)
                  По логике программы мне не нужно выводить все подряд в html
                  • CGI-скрипт на С, !*! DeadMustdie, 15:23 , 13-Авг-05 (9)
                    >>>А почему Content-type: вызвал подозрение?
                    >>
                    >>Ибо заголовок, а следовательно - должен идти вначале ;-)
                    >По логике программы мне не нужно выводить все подряд в html

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

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

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




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

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