[so] [tema5 lin]
Andreea Hodea
hodea_andreea at yahoo.com
Sat May 19 12:40:40 EEST 2012
Deci, pentru a trimite un fisier pe bucati trebuie sa folosim urmatorul format?
HTTP/1.1 200 OK
Transfer-Encoding: chunked
dimensiune_chunk_1
chunk1
dimensiune_chunk_1
chunk2
...
0
Si pentru fiecare chunk se trimit primele doua randuri din antetul HTTP? Si atunci, nelamurirea cu sendfile ramane in picioare: send("HTTP/1.1 200 OK\r\n""Transfer-Encoding: chunked\r\n""\r\n""dimensiune_chunk_1\r\n") + sendfile(chunk)?
--- On Sat, 5/19/12, Andreea Hodea <hodea_andreea at yahoo.com> wrote:
> From: Andreea Hodea <hodea_andreea at yahoo.com>
> Subject: [so] [tema5 lin]
> To: so at cursuri.cs.pub.ro
> Date: Saturday, May 19, 2012, 11:41 AM
> Salve, succesiunea in trimiterea unui
> fisier, din cate am inteles, ar trebui sa fie urmatoarea:
> * primirea unui EPOLLIN
> * determinare cale
> * fisier nu exista -> adaug EPOLLOUT pentru HTTP 404
> * fisier exista -> adaug EPOLLOUT pentru ceea ce
> incarc in conn->send_buf
> * primirea unui EPOLLOUT
> * dc 404, trimit 404, altfel:
> * fisier static: trimit HTTP 200 urmat de
> continutul fisierului cu sendfile
> * fisier dinamic: trimit HTTP 200 urmat de
> continutul fisierului citit asincron
>
> Daca pana aici am inteles corect, cand trimit un fisier
> static apelez send("HTTP/1.1 200 OK\r\n\r\n") si apoi
> sendfile(static_file)? Conform checkerului, nu mai trimit
> 200, ci doar fisierul, dar atunci nu se mai considera
> raspuns HTTP.
>
> Asadar:
> 1. pentru fisier static, folosesc sendfile sau "HTTP/1.1 200
> OK\r\n""continut_fisier"?
> 2. daca trimit odata cat intra pe socket, asta inseamna ca
> la fiecare EPOLLOUT pe un acelasi fisier pentru fiecare
> chunk din fisier trimit si "HTTP/1.1 200" sau trimit doar
> urmatorul chunk? Daca trimit antetul HTTP cu fiecare chunk,
> la ultimul chunk trimit si tagul "Connection: closed"?
>
> Multumesc, Andreea
> _______________________________________________
> http://elf.cs.pub.ro/so/wiki/resurse/lista-discutii
More information about the so
mailing list