[so] [Tema 5] Neclaritati enunt
Razvan Crainea
razvan.crainea at gmail.com
Thu May 17 23:10:55 EEST 2018
On Thu, May 17, 2018 at 9:13 PM Catalin Neagu via so <so at cursuri.cs.pub.ro>
wrote:
> Salut,
>
> Am cateva intrebari legate de enuntul problemei.
>
> 1.1 Din cate am inteles din enunt, cererile vor fi siruri de caractere
> care respecta protocolul http. Ca si informatie utila din aceaste cereri,
> mai e ceva pe langa request path-ul pentru fisier?
>
Da, în cadrul temei doar path-ul este util.
>
> 1.2 Ne vor trebui si alte functii de callback pe care sa le includem in
> http_parser_settings pentru http_parser_execute?
>
Vă trebuie doar callback-ul care se apelează după ce este identificat
path-ul.
>
> 2.1 Cum anume va trebui sa fie raspunsul pentru o cerere valida? Trimit
> pur si simplu fisierul si apoi trimit un mesaj de genul "HTTP/1.0 200
> OK\r\n"? Sau trebuie sa integrez continutul fisierului intr-un sir de
> caractere care are pe langa si alte campuri cum ar fi "Content-Length:" si
> altele asemenea?
>
Pe lângă first line-ul (200 OK) care este obligatoriu, trebuie să trimiți
și "Content-Length".
HTTP este un protocol la nivel aplicație care rulează peste TCP. Peste TCP
se trimit stream-uri de date; asta înseamnă că la nivel de TCP nu poți
să-ți dai seama dacă pachet-ul anterior s-a terminat de trimis, sau mai vin
date pe același stream. Drept urmare, dacă tu nu trimiți header-ul
"Content-Length:", cel care citește răpsunsul tău, nu va putea știi dacă tu
ai trimis tot body-ul din răspuns, sau urmează să mai trimiți.
De asemenea, este indicat să trimiți și header-ul de "Content-Type:",
pentru ca cel care primește răspunsul să știe cum să-l interpreteze.
>
> 2.2 Cum anume va trebui trimis un fisier folosind mecanismul de zero-copy?
> Referitor la intrebarea de mai sus. Acesta nu prea poate fi adus in memoria
> procesului pentru acea integrare intr-un mesaj de tip HTTP din cate imi dau
> seama.
>
Nu mi-e clară întrebarea ta. În principiu trebuie să trimiți header-ul HTTP
al răspunsului, apoi fișierul pe socket-ul conexiunii.
>
> 2.3 Cum anume arata o cerere invalida? O cerere care are un path care nu
> duce catre nici un fisier si atat? Sau mai sunt si alte campuri din cerere
> de care trebuie tinut cont?
>
O cerere care nu are un path, sau duce către un path inexistent.
PS: am modificat subliectul în Tema 5
Sper că e clar acum. Spor!
Răzvan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20180517/5e907659/attachment-0001.html>
More information about the so
mailing list