[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