tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

cacheable-and-validated.py (1251B)


      1 def main(request, response):
      2    # Headers need to be set before `response.writer` writes out the response.
      3    tao = request.GET.get(b'timing_allow_origin')
      4    if tao:
      5      response.headers.set(b"Timing-Allow-Origin", tao)
      6 
      7    if b'origin' in request.headers:
      8      origin = request.headers[b'origin']
      9      response.headers.set(b'Access-Control-Allow-Origin', origin)
     10 
     11    content = request.GET.first(b'content')
     12    response.headers.set(b'Cache-Control', b'max-age=60')
     13    response.headers.set(b'ETag', b'assdfsdfe')
     14 
     15    # Handle CORS-preflights of non-simple requests.
     16    if request.method == 'OPTIONS':
     17      response.status = 204
     18      requested_method = request.headers.get(b"Access-Control-Request-Method")
     19      if requested_method:
     20        response.headers.set(b"Access-Control-Allow-Methods", requested_method)
     21      requested_headers = request.headers.get(b"Access-Control-Request-Headers")
     22      if requested_headers:
     23        response.headers.set(b"Access-Control-Allow-Headers", requested_headers)
     24    else:
     25      if 'Cache-Control' in request.headers:
     26        response.status = (304, b'NotModified')
     27      else:
     28        response.status = (200, b'OK')
     29        response.write_status_headers()
     30        response.writer.write(content)