Вопрос о HTTP запросах (язык С)

Доброго времени суток!
Господа есть такое.




kolia88@tux ~ $ cc testegg.c -o test -Wall
kolia88@tux ~ $ ./test --connect ya.ru 80
1
ya.ru
GET / HTTP/1.1
Host: ya.ru
User-Agent:Mozilla/5.0(X11;Linuxx86_64;en,ru;rv:17.0)Gecko/20100101Firefox/17.0
Accept:text/html,application/json,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*;q=0.1
Accept-Language:ru;q=0.50
Accept-Encoding:gzip,deflate,compress;q=0.9
Accept-Charset:ISO-8859-1,utf-8;q=0.66,*;q=0.66
Connection:close


2
3
77.88.21.3:204804
7

8
HTTP/1.1 200 Ok
Server: nginx
Date: Sun, 23 Dec 2012 14:13:43 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Cache-Control: no-cache,no-store,max-age=0,must-revalidate
Expires: Sun, 23 Dec 2012 14:13:43 GMT
Last-Modified: Sun, 23 Dec 2012 14:13:43 GMT
P3P: policyref="/w3c/p3p.xml", CP="NON DSP ADM DEV PSD IVDo OUR IND STP PHY PRE NAV UNI"
Set-Cookie: yandexuid=30381468813562720
200
kolia88@tux ~ $ 

Вопрос, как сделать так чтобы возвращалась страница, что я делаю не так(в этом деле новичок)прошу кто может дайте совет почему нет страниц.

Залезть в код curl

Залезть в код curl

Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.

Хм, Зачем лесть в код

Хм, Зачем лесть в код curl?
Решение же должно быть ни сколько не сложным...

kolia88@tux ~ $ ./test

kolia88@tux ~ $ ./test --connect ubuntuforums.org/index.php?topic=209856.0 80
1
ubuntuforums.org/index.php?topic=209856.0
GET /index.php?topic=209856.0 HTTP/1.1 
Host: ubuntuforums.org
User-Agent:Mozilla/5.0(X11;Linuxx86_64;en,ru;rv:17.0)Gecko/20100101Firefox/17.0
Accept:text/html,application/json,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*;q=0.1
Accept-Language:ru;q=0.50
Accept-Encoding:gzip,deflate,compress;q=0.9
Accept-Charset:ISO-8859-1,utf-8;q=0.66,*;q=0.66
Connection:close


2
3
91.189.94.12:204804
7

8
HTTP/1.1 200 OK
Date: Sun, 23 Dec 2012 16:32:14 GMT
Server: Apache/2.2.22 (Ubuntu)
X-Powered-By: PHP/5.3.10-1ubuntu3.4
Expires: 0
Cache-Control: private, post-check=0, pre-check=0, max-age=0
Pragma: no-cache
X-UA-Compatible: IE=7
Content-Type: text/html; charset=ISO-8859-1
Set-Cookie: bbsessionhash=b2140879f79a472dad1ca1cbc49684b0; path=/; domain=.ubuntuforums.org; HttpOnly
Set-Cookie: bblastvisit=1356280334; expires=Mon, 23-Dec-2013 16:32:14 GMT; path=
200

http://bpaste.net/show/66152/

Проделал манипуляции с

Проделал манипуляции с пробелами вот что получается http://bpaste.net/show/66155/

и выводит вот что

kolia88@tux ~ $ ./test --connect www.google.com 80
1
www.google.com
GET / HTTP/1.1
Host: www.google.com
User-Agent: Mozilla/5.0(X11;Linuxx86_64;en,ru;rv:17.0)Gecko/20100101Firefox/17.0
Accept: text/html,application/json,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*;q=0.1
Accept-Language: ru;q=0.50
Accept-Encoding: gzip,deflate,compress;q=0.9
Accept-Charset: ISO-8859-1,utf-8;q=0.66,*;q=0.66
Connection: close


2
3
74.125.143.106:204804
7

8
HTTP/1.1 302 Found
Location: http://www.google.ru/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Set-Cookie: PREF=ID=b9523039ab7c02b7:FF=0:TM=1356281466:LM=1356281466:S=42AHZ_Qu8mtESjDa; expires=Tue, 23-Dec-2014 16:51:06 GMT; path=/; domain=.google.com
Set-Cookie: NID=67=Mv6ZbTppsGUC9L5s7Ot78rvJvitmuBvRiLXhtAQdsfLqZQsj0IUGDF8QGp3Jc6YHXK66wdEA-ZTt8kNcGt9RYNrMar59ZB0mdihqshYgg8leR3gsl73JMJbCgCLiBUae; expires=Mon, 24-Jun-201
302
kolia88@tux ~ $ ./test --connect ru.wikipedia.org 80
1
ru.wikipedia.org
GET / HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0(X11;Linuxx86_64;en,ru;rv:17.0)Gecko/20100101Firefox/17.0
Accept: text/html,application/json,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*;q=0.1
Accept-Language: ru;q=0.50
Accept-Encoding: gzip,deflate,compress;q=0.9
Accept-Charset: ISO-8859-1,utf-8;q=0.66,*;q=0.66
Connection: close


2
3
91.198.174.225:204804
7

8
HTTP/1.0 301 Moved Permanently
Date: Sun, 23 Dec 2012 16:39:36 GMT
Server: Apache
X-Content-Type-Options: nosniff
Cache-Control: s-maxage=1200, must-revalidate, max-age=0
Vary: Accept-Encoding,X-Forwarded-Proto,Cookie
Last-Modified: Sun, 23 Dec 2012 16:39:36 GMT
Location: http://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0
Content-Encoding: gzip
Content-Le
301

kolia88@tux ~ $ ./test

kolia88@tux ~ $ ./test --connect ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0 80
1
ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0
GET /wiki/%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0 HTTP/1.1
Host: ru.wikipedia.org
User-Agent: Mozilla/5.0(X11;Linuxx86_64;en,ru;rv:17.0)Gecko/20100101Firefox/17.0
Accept: text/html,application/json,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,video/x-mng,image/png,image/jpeg,image/gif;q=0.2,text/css,*;q=0.1
Accept-Language: ru;q=0.50
Accept-Encoding: gzip,deflate,compress;q=0.9
Accept-Charset: ISO-8859-1,utf-8;q=0.66,*;q=0.66
Connection: close


2
3
91.198.174.225:204804
7

8
HTTP/1.0 200 OK
X-Content-Type-Options: nosniff
Content-Language: ru
Content-Encoding: gzip
Content-Length: 24547
Server: Apache
Cache-Control: private, s-maxage=0, max-age=0, must-revalidate
Vary: Accept-Encoding,Cookie
Date: Sun, 23 Dec 2012 16:53:49 GMT
Content-Type: text/html; charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Last-Modified: Sun, 23 Dec 2012 14:05:15 GMT
X-Cache: HIT from amssq41.esams.wikimedia.org
X-Cache-Lookup: HIT from amssq41.esams.wikimedia.org:3128
Age: 76
X-Cache: HIT from amssq37.esams.wikimedia.org
X-
200

и это все подскажите кому не сложно в чем вся соль

Не знаю как собрана программа

Не знаю как собрана программа ./test в вашем примере, и какие параметры она может принимать, но то, что запрашиивается у сервера только заголовок веб-страницы - очевидный факт!
Пример запроса заголовка и тела веб-страницы на языке newLISP, выглядит так.

Здесь я явно запрашиваю заголовок веб-страницы (параметр header):

> (get-url "http://ya.ru" "header")
"Server: nginx\r\nDate: Tue, 25 Dec 2012 01:51:51 GMT\r\nContent-Type: text/html; charset=UTF-8\r\nConnection: close\r\nCache-Control: no-cache,no-store,max-age=0,must-revalidate\r\nContent-Length: 5019\r\nExpires: Tue, 25 Dec 2012 01:51:51 GMT\r\nLast-Modified: Tue, 25 Dec 2012 01:51:51 GMT\r\nP3P: policyref=\"/w3c/p3p.xml\", CP=\"NON DSP ADM DEV PSD IVDo OUR IND STP PHY PRE NAV UNI\"\r\nSet-Cookie: yandexuid=9042457571356400311; Expires=Fri, 23-Dec-2022 01:51:51 GMT; Domain=.ya.ru; Path=/\r\nX-Frame-Options: DENY\r\nXX-XRDS-Location: http://openid.yandex.ru/server_xrds/\r\n\r\n"

А теперь я запрашиваю тело веб-страницы:

> (get-url "http://ya.ru")
[text]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Яндекс</title>
...
Здесь много кода страницы...
...
<img src="//mc.yandex.ru/watch/723233"style="position:absolute; margin-top: -10px;"alt=""/></body></html>[/text]

На всякий случай обратите внимание на тот факт, что заголовок и тело веб-страницы отделяются двумя пустыми строками. Это ясно видно в конце моего первого примера:

XX-XRDS-Location: http://openid.yandex.ru/server_xrds/\r\n\r\n

То есть клиент (в данном случае ваша программа), должен интерпретировать все поступающие от сервера данные как заголовок веб-страницы до тех пор, пока не встретит идущие подряд две пустые строки.

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

Автор отправляется читать

Автор отправляется читать спецификации протокола HTTP, в частности, запросы HEAD и GET. У ТС идет запрос GET - он возвращает либо страницу, либо ошибку, либо перенаправление. Он не может вернуть ТОЛЬКО ЗАГОЛОВКИ.

Автор темы - запусти-ка telnet ya.ru 80, набери в нем GET http://ya.ru/ HTTP/1.0 и посмотри. Вот твои ошибки:

1. строка запроса GET не может быть пустой - это даст ошибку 400 (bad request)
2. не все веб-сервера согласны принимать запросы по HTTP/1.1 - попробуй 1.0
3. пойди от простого - напиши работающую программулю, которая тупо заберет веб-страницу корректно, потом усложняй ее всякими заголовками типа host/cookie и т.д.

Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"

Tzar написал(а):Автор

Tzar написал(а):
Автор отправляется читать спецификации протокола HTTP, в частности, запросы HEAD и GET. У ТС идет запрос GET - он возвращает либо страницу, либо ошибку, либо перенаправление. Он не может вернуть ТОЛЬКО ЗАГОЛОВКИ.

Спасибо, обязательно при случае почитаю.

К стати. Перенаправление достигается отправкой клиенту строки вида "Location: нужный_url\r\n\r\n", то есть фактически только один заголовок, без тела веб-страницы.

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

kesha написал(а):К стати.

kesha написал(а):
К стати. Перенаправление достигается отправкой клиенту строки вида "Location: нужный_url\r\n\r\n", то есть фактически только один заголовок, без тела веб-страницы.

1. Кстати пишется слитно.
2. Я же дал совет - отправляемся ЧИТАТЬ СПЕЦИФИКАЦИЮ ПРОТОКОЛА. А точнее, коды 301, 302, 303 (moved permanently, moved temporarily, see other)

После Location кстати вполне может идти тело страницы, но браузер, обработав Location, не будет парсить тело.

Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"

Tzar написал(а): ... 1.

Tzar написал(а):
...
1. Кстати пишется слитно.
...

И за это спасибо, буду знать :-)

Я типичный русский колхозник.
Долго запрягаю, быстро езжу и сильно торможу...

На том и сойдемся )))

На том и сойдемся )))

Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"

Ребята огромное Спасибо

Вот теперь что возращает яндекс)
http://bpaste.net/show/66595/

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>Яндекс</title><link rel="shortcut icon"href="http://yandex.st/lego/_/pDu9OWAQ��rKB0s2J9IojKpiS_Eho.ico"><link rel=search href="http://yandex.ru/opensearch.xml"title="Яндекс"type="application/opensearchdescription+xml"><base target="_top"><link rel="stylesheet"href="//yandex.st/www/1.414/yaru/pages/index/_index.css"/><script type="text/javascript">(function(b){var a="";b.Detector=(function(){var g=function(){var i=document.documentElement.st��ryle;return typeof i.borderRadius==="string"||typeof i.WebkitBorderRadius==="string"||typeof i.KhtmlBorderRadius==="string"||typeof i.MozBorderRadius==="string"};var f=function(j){var i=new Image();i.onload=i.onerror=function(){j(this.width===1&&this.height===1)};i.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw=="};var e=function(){var i=false;try{i=!!new b.ActiveXObject("htmlfile")}catch(j){i=false}return i};var d=function(){return b.navigator&&b.navigator.platform==="Win64"};var c=function(){return b.innerWidth&&b.screen&&b.screen.width&&b.screen.height&&b.innerHeight&&(b.innerWidth===screen.width&&window.innerHeight===screen.height)}��r;var h=function(){return c()&&d()&&!e()};return{isBorderRadiusSupported:g(),checkDataURLSupport:f,isIEMetroMode:h()}})();a+=" js";a+=Detector.isBorderRadiusSupported?" m-border-radius":" m-no-border-radius";if(Detector.isIEMetroMode){a+=" m-ie10-metro"}Detector.checkDataURLSupport(function(c){if(!c){a+=" no-data-url"}});if(b.device){a+=" m-touch"}if(b.document&&b.docu��rment.documentElement){b.document.documentElement.className+=a}})(this);</script><script type="text/javascript"></script></head><body><i class="b-tns"></i><table cellpadding="0"cellspacing="0"><tbody><tr><td colspan="2"valign="top"height="1"><ul id="head"><li class="gap-left"><i></i></li><li class="s"><a id="sethome"href="http://help.yandex.ru/start/" onmousedown="c(th��ris,17,1755);">Сделать стартовой</a></li><li class="gap-right"><i></i></li><li id="mail"><a href="http://mail.yandex.ru"onclick="c(this,17,1080)">Войти в почту</a></li></ul></td></tr><tr><td colspan="2"align="center"><form action="http://yandex.ru/yandsearch"style="position:relative;z-index:1;"><table class="b-search i-bem"onclick="return{'b-search':{}}"><tbody><tr><td><a href="http://www.yandex.ru" onclick="c(this,17,1081)"><img src="//yandex.st/www/1.414/yaru/i/logo.png"alt="Яндекс"width="100"border="0"height="44"></a></td><td class="b-text"><div class="b-search__input"><span class="b-form-input b-form-input_size_l b-f��rorm-input_type_autofocus i-bem  b-form-input_autocomplete_yes b-form-input_suggest_yes b-form-input_tap-ahead_yes" onclick="return {'b\-form\-input':{ 'name':'b\-form\-input', 'dataprovider':{url:'http:\/\/suggest.yandex.ru\/suggest-ya.cgi?v=4&fact=1&wiz=TrWth&callback=?',version:4}, 'suggestType':'morda_ru', 'popupMods':{'size':'l','suggest':'yes'}}}"><sp��ran class="b-form-input__box"><input name="text"class="b-form-input__input"id="text"maxlength="400"/></span></span></div></td><td><div class="b-search__button"><span onclick="return {'b\-form\-button':{name:'b\-form\-button'}}"class="b-form-button b-form-button_theme_grey-arrow-no-transparent-l b-form-button_size_l i-bem" style="margin-top: -2px" role="button"><i class��r="b-form-button__left"></i><span class="b-form-button__content"><span class="b-form-button__text">Найти</span></span><input type="submit"onclick="c(this,17,1082)"value=""class="b-form-button__input"/></span></div></td></tr></tbody></table></form></td></tr><tr valign="bottom"><td colspan="2"height="1"class="copy"><div class="copy-wrap"><p class="left"><span>© 1997—2012</span> «<a href="http://www.yandex.ru" onclick="c(this,17,1083)">Яндекс</a>»</p><p class="right">Дизайн — <a href="http://www.artlebedev.ru" onclick="c(this,17,1084)">Студия Артемия Лебедева</a></p><div class="b-adv"><a href="http://brow��rser.yandex.ru"terget="_blank">Новый Яндекс.Браузер</a></div></div></td></tr></tbody></table><!--[if lte IE 7]><script>try{document.domain = "ya.ru";}catch(e){}</script><![endif]--><script src="//yandex.st/jquery/1.6.3/jquery.min.js"type="text/javascript"></script><script src="//yandex.st/www/1.414/yaru/pages/index/_index.js"type="text/javascript"></s��rcript><script></script><script>Lego.init({login:"", locale:"ru", 'lang-zone':"ru"}); setTimeout(function() { createElement('script', { type: 'text/javascript', charset:'UTF-8', src: 'http://www.yandex.ru/data/mail.js?yaru=y' }, function(){ if (window.regionID){ $('<input name="lr"type="hidden">') .val(window.regionID) .appendTo($('form')); } }); }, 42);</script><ifram��re frameBorder="0"src="http://kiks.yandex.ru/su/"style="width:40px;height:40px;overflow:hidden;position:absolute;left:-40px;top:0;opacity:0"></iframe><img src="//mc.yandex.ru/watch/723233"style="position:absolute; margin-top: -10px;"alt=""/></body></html>

Нашел мануал по использованию directfb

Ставлю прописываю а оно вываливается, каким лучше пользоваться и где можно почитать об этом кто может подсказать? Использую gentoo язык Си естессно

1 вопрос - 1 тема. Читай FAQ

1 вопрос - 1 тема. Читай FAQ

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".