[so] [tema5 lin]
Andreea Hodea
hodea_andreea at yahoo.com
Sat May 19 11:41:30 EEST 2012
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
More information about the so
mailing list