Documentation Source Text

Check-in [b85fcc5367]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Make sure 304 responses are always followed by a blank line to signal the client that the response is complete.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: b85fcc5367ee04910c1da6130c9d7b38bcd51ce0aa35aa2e132e77c951455b12
User & Date: drh 2018-01-15 18:50:09
Context
2018-01-15
18:55
Update zipfile docs to remove the capability to insert compressed data. check-in: 424270babe user: dan tags: trunk
18:50
Make sure 304 responses are always followed by a blank line to signal the client that the response is complete. check-in: b85fcc5367 user: drh tags: trunk
14:28
Add caching to static content delivery in althttpd.c. check-in: 635a6553e2 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to misc/althttpd.c.

1721
1722
1723
1724
1725
1726
1727
1728
1729

1730
1731
1732
1733
1734
1735
1736

    if( zTmpNam ) unlink(zTmpNam);
    sprintf(zETag, "m%xs%x", (int)statbuf.st_mtime, (int)statbuf.st_size);
    if( CompareEtags(zIfNoneMatch,zETag)==0 ){
      StartResponse("304 Not Modified");
      nOut += printf("Cache-Control: max-age=%d\r\n", mxAge);
      nOut += printf("ETag: \"%s\"\r\n", zETag);
      MakeLogEntry(0, __LINE__);  /* LOG: ETag Cache Hit */
      fflush(stdout);

      return;
    }
    in = fopen(zFile,"r");
    if( in==0 ) NotFound(__LINE__); /* LOG: fopen() failed for static content */
    StartResponse("200 OK");
    nOut += DateTag("Last-Modified", statbuf.st_mtime);
    nOut += printf("Cache-Control: max-age=%d\r\n", mxAge);







|

>







1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737

    if( zTmpNam ) unlink(zTmpNam);
    sprintf(zETag, "m%xs%x", (int)statbuf.st_mtime, (int)statbuf.st_size);
    if( CompareEtags(zIfNoneMatch,zETag)==0 ){
      StartResponse("304 Not Modified");
      nOut += printf("Cache-Control: max-age=%d\r\n", mxAge);
      nOut += printf("ETag: \"%s\"\r\n", zETag);
      nOut += printf("\r\n");
      fflush(stdout);
      MakeLogEntry(0, __LINE__);  /* LOG: ETag Cache Hit */
      return;
    }
    in = fopen(zFile,"r");
    if( in==0 ) NotFound(__LINE__); /* LOG: fopen() failed for static content */
    StartResponse("200 OK");
    nOut += DateTag("Last-Modified", statbuf.st_mtime);
    nOut += printf("Cache-Control: max-age=%d\r\n", mxAge);