[so] [Tema 5] Antet HTTP
Georgiana Diana
geodiana93 at gmail.com
Mon May 25 13:40:42 EEST 2015
2015-05-25 13:12 GMT+03:00 Adrian Stanciu <adrian.stanciu.pub at gmail.com>:
> 2015-05-25 12:31 GMT+03:00 Georgiana Diana via so <so at cursuri.cs.pub.ro>:
> > Salut,
> > Atunci cand raspundem unui request de la un client, trebuie sa trimitem
> si
> > un antet HTTP (200 sau 404, dupa caz), dupa care sa trimitem fisierul. Am
> > doua intrebari legate de acest lucru:
> >
> > 1) Este okay sa trimitem antetul cu functia send [1] (prin apeluri
> repetate,
> > pentru ca socket-ul nu permite o dimensiune foarte mare a bufferului) sau
> > exista un mod mai elegant de a face acest lucru ?
>
> Da, este ok. Pe Windows, TransmitFile() are un parametru
> lpTransmitBuffers pentru a preciza un header/trailer.
>
> > 2) Daca trimit mai intai antetul si apoi fisierul, atunci cand se compara
> > fisierul obtinut de client si cel initial, trimis de server, cmp esueaza,
> > pentru ca in fisierul primit de client se afla si antetul. Am vazut ca in
> > testele care testeaza (scuze de repetare) existenta antetului (de ex,
> testul
> > 13), se foloseste redirectare catre un fisier, iar testele care compara
> cele
> > doua fisiere (sursa si destinatie), folosesc wget (de ex, testul 17). Nu
> imi
> > dau seama cum sa rezolv aceasta problema, anume faptul ca apare si
> antetul
> > HTTP in fisierul primit de client.
>
> wget nu ar trebui să salveze răspunsul HTTP în fișier. Asigură-te că
> răspunsul HTTP trimis de tine este corect și conține:
> * linia de status
> * header-ele Content-Type, Content-Length, Connection
> * linie goală (CRLF)
>
> Vezi exemple de headere HTTP la [2].
> Dacă problema nu este de aici, revin-o cu mai multe detalii.
>
> >
> > [1] http://linux.die.net/man/3/send
> >
>
> [2] http://elf.cs.pub.ro/so/res/teme/tema5-util/http-parser/test.c
>
> Adrian
>
Salut,
Mersi de raspuns, am rezolvat problema :) La header era baiul, trimiteam un
dummy header si am uitat sa adaug lungimea efectiva a fisierului trimis. Am
modificat Content-type sa fie "application/octet-stream". Este okay tipul
asta ?
--
*Georgiana Diana Ciocirdel*
Polytechnic University of Bucharest,
Computer Science
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20150525/0bd8c17a/attachment.html>
More information about the so
mailing list