﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
25383	Trying to access the local server in HTTPS throw a 400 error	Maxime Lorant	nobody	"Using the `manage.py runserver` command, when I try to access to https://127.0.0.1:8000 (note the https protocol), the server throws an error:


{{{
[11/Sep/2015 16:48:05] code 400, message Bad request syntax ('\x16\x03\x01\x00\xba\x01\x00\x00\xb6\x03\x03k[\xae\x88;\x81\xefJ\xa5\xa5\xa9j[F,uK\xcfb\xf4\x90\xbf\xd9k\x14\x86(w\x00_V0\x00\x00\x1e\xc0+\xc0/\xc0')
----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 35451)
Traceback (most recent call last):
  File ""/usr/lib/python2.7/SocketServer.py"", line 593, in process_request_thread
    self.finish_request(request, client_address)
  File ""/usr/lib/python2.7/SocketServer.py"", line 334, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File ""my_virtual_env/local/lib/python2.7/site-packages/django/core/servers/basehttp.py"", line 129, in __init__
    super(WSGIRequestHandler, self).__init__(*args, **kwargs)
  File ""/usr/lib/python2.7/SocketServer.py"", line 649, in __init__
    self.handle()
  File ""/usr/lib/python2.7/wsgiref/simple_server.py"", line 117, in handle
    if not self.parse_request(): # An error code has been sent, just exit
  File ""/usr/lib/python2.7/BaseHTTPServer.py"", line 286, in parse_request
    self.send_error(400, ""Bad request syntax (%r)"" % requestline)
  File ""/usr/lib/python2.7/BaseHTTPServer.py"", line 368, in send_error
    self.send_response(code, message)
  File ""/usr/lib/python2.7/BaseHTTPServer.py"", line 385, in send_response
    self.log_request(code)
  File ""/usr/lib/python2.7/BaseHTTPServer.py"", line 422, in log_request
    self.requestline, str(code), str(size))
  File ""my_virtual_env/local/lib/python2.7/site-packages/django/core/servers/basehttp.py"", line 136, in log_message
    msg = ""[%s] %s\n"" % (self.log_date_time_string(), format % args)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xba in position 5: ordinal not in range(128)
----------------------------------------
}}}

I don't know if there are limitations about having a local server supporting the HTTPS protocol, but Django should at least throw a nicer exception. This error happened to a colleague who modified in his browser a production URL (which only works in https) to a local one, and the error was quite cryptic at first sight. "	Cleanup/optimization	closed	HTTP handling	1.7	Normal	duplicate			Unreviewed	0	0	0	0	0	0
