Portál AbcLinuxu, 19. dubna 2024 08:07


Dotaz: Jednoduchy "WWW" server v bashi?

Johny z Podoli avatar 5.11.2006 16:07 Johny z Podoli | skóre: 26 | blog: rocfdebian
Jednoduchy "WWW" server v bashi?
Přečteno: 279×
Odpovědět | Admin
Ahoj,

chci aby se vystup "scriptu" postnul do WWW prohlizece (na portu 85)

v inetd.conf mam
85              stream  tcp     wait    root    /usr/sbin/tcpd /script/www
a /script/www mam
#!/bin/sh
echo "AHOJ"

script je nastaven chmod 777 www

nevite, co mohu udelat proto, aby to chodilo? Nebo to mam rovnou vzdat?

dik moc, Johny
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

5.11.2006 16:10 thingie
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
Odpovědět | | Sbalit | Link | Blokovat | Admin
No, přinejmenším by nebylo marné, kdyby se ten tvůj skript tvářil, že jeho výstup má aspoň něco společného s HTTP.

Takže by měl vracet zhruba něco takového (aspoň, nejmíň).
HTTP/1.0 200 OK

AHOJ
Johny z Podoli avatar 5.11.2006 16:11 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
to se tvarit bude, ted mi ten "vystup" .. AHOJ nenapise ani pri pripojeni telnetem..

Johny
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
Johny z Podoli avatar 5.11.2006 16:14 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
koukam, nekde je chyba.. ale nevim kde :-(

syslog:

Nov  5 16:13:05 localhost www[25588]: warning: can't get client address: Transport endpoint is not connected
Nov  5 16:13:05 localhost www[25588]: connect from unknown (unknown)
Nov  5 16:13:05 localhost inetd[25539]: /usr/sbin/tcpd: exit signal 0xd
Nov  5 16:13:05 localhost www[25589]: warning: can't get client address: Transport endpoint is not connected
Nov  5 16:13:05 localhost www[25589]: connect from unknown (unknown)
Nov  5 16:13:05 localhost inetd[25539]: /usr/sbin/tcpd: exit signal 0xd
Nov  5 16:13:05 localhost www[25590]: warning: can't get client address: Transport endpoint is not connected
Nov  5 16:13:05 localhost www[25590]: connect from unknown (unknown)
Nov  5 16:13:05 localhost inetd[25539]: /usr/sbin/tcpd: exit signal 0xd
Nov  5 16:13:05 localhost inetd[25539]: 85/tcp server failing (looping), service terminated
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
Johny z Podoli avatar 5.11.2006 16:18 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
tak uz to jede spravne, pri spojeni telnetem vypise vse co ma. (v inetd.conf jsme napsal nowait)

ale ted, i kdyz uz vystup vypada jako regulerni, nepise to co potrebuji..

mozna by mel cekat poslani pozadavku z www, tedy
GET / HTTP/1.0
ale to nevim, jak v bashi udelat.. aby cekal na "enter"
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
5.11.2006 16:20 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
read
Johny z Podoli avatar 5.11.2006 16:34 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
script /script/www teď obsahuje:
#!/bin/sh

read
echo "HTTP/1.0 200 OK"
echo "Content-Type: text/plain; charset=ISO-8859-2"
echo ""
echo ""
echo "AHOJ"

telnetem se jiz pripojim, simuluji http protokol, a dostanu odpoved.

www prohlizec (mozilla) ale hlasi "NO DATA"

.. a wget, napriklad
--16:33:46--  http://10.44.0.2:85/
  (try: 4) => `index.html'
Connecting to 10.44.0.2:85... connected.
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
Retrying.
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
Josef Kufner avatar 5.11.2006 17:06 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
Vem si specifikaci HTTP a přečti si, jak má vypadat hlavička na obou stranách a nahraď to read něčím trošku sofistikovanějším. Nemusí to být o moc, stačí aby se to vypořádalo se vším tím smetím co browser posílá.

Například takto vypadá kus toho co posílá firefox při načítání Abíčka:
GET / HTTP/1.1
Host: www.abclinuxu.cz
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050610 Firefox/1.0.4 (Debian package 1.0.4-3)
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: cs,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.abclinuxu.cz/forum/EditDiscussion
If-Modified-Since: Sun, 05 Nov 2006 15:32:25 GMT
 
Hello world ! Segmentation fault (core dumped)
5.11.2006 18:18 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
okrem citania HTTP rfc-cka, chyba tam minimalne Content-Length :-)
Johny z Podoli avatar 5.11.2006 18:26 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
radeji ale, nez popis jedne z mnoha hlavicek bych uvital, jak se jich (tech od browseru) zbavit
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
5.11.2006 20:27 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
Hlavně mi není moc jasné, proč to vůbec chcete takto dělat místo toho, abyste použil skutečný server, např. Apache. Efektivita důvodem určitě nebude, to byste se nesnažil používat shellový skript.
5.11.2006 20:58 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
Nuda. :-) Nebo začal už školní rok na mnoha vysokých školách, takže zase úkoly? :-)
Johny z Podoli avatar 5.11.2006 23:07 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
skola? LOL :D vse co delam delam proto, protoze to potrebuji... stejne jako toto. mohu rozepisovat duvody proc tohle a proc nejde nasadit apache, thttpd a pod. Nicmene to je, vzhledem k memu pozadavku lehce offtopic.

Johny
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
Johny z Podoli avatar 5.11.2006 23:05 Johny z Podoli | skóre: 26 | blog: rocfdebian
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
protoze na danem systemu, z jisteho duvodu proste obycejny www server bezet z jistejch duvodu nemuze.

Johny
Můj web o táborech: Letní dětské tábory, Hudební tábor , Můj nový blog na Nul.cz
Josef Kufner avatar 6.11.2006 00:36 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
Nějaké moc malé zařízení, nebo to bude součástí většího programu?

No, prostě akorát tu hlavičku přečti a když tě nezajímá, tak jí zahoď. Kontroluj pár podstatných, ale aspoň ať si to povídá, když už to neposlouchá ;-)
Hello world ! Segmentation fault (core dumped)
6.11.2006 01:28 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
Mám pocit, že podle specifikace HTTP se řádky musí ukončovat sekvencí CRLF...
6.11.2006 02:55 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
To je velmi správný pocit. Bohužel si ale spousta lidí myslí, že když drtivá většina existujících klientů i serverů akceptuje i samotný LF, opravňuje je to ignorovat specifikace… :-(
5.11.2006 19:06 klekac | skóre: 2
Rozbalit Rozbalit vše Re: Jednoduchy "WWW" server v bashi?
Odpovědět | | Sbalit | Link | Blokovat | Admin
mrkni na: http://userpages.umbc.edu/~mabzug1/bash-httpd.html

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.