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