cpython/Lib
Miss Islington (bot) b391b9b925
bpo-43972: Set content-length to 0 for http.server.SimpleHTTPRequestHandler 301s (GH-25705)
* Set content-length for simple http server 301s

When http.server.SimpleHTTPRequestHandler sends a 301 (Moved
Permanently) due to a missing file, it does not set a Content-Length
of 0. Unfortunately, certain clients can be left waiting for the
connection to be closed in this circumstance, even though no body
will be sent. At time of writing, both curl and Firefox demonstrate
this behavior.

* Test Content-Length on simple http server redirect

When serving a redirect, the SimpleHTTPRequestHandler will now send
`Content-Length: 0`. Several tests for http.server already cover
various behaviors and checks including redirection. This change only
adds one check for the expected Content-Length on the simplest case
for a redirect.

* Add news entry for SimpleHTTPRequestHandler fix

* Clarify the specific kind of 301

Co-authored-by: Senthil Kumaran <skumaran@gatech.edu>
(cherry picked from commit fb42725561)

Co-authored-by: Stephen Rosen <sirosen@globus.org>
2021-05-06 12:50:54 -07:00
..
asyncio bpo-41891: ensure asyncio.wait_for waits for task completion (GH-22461) (#23840) 2020-12-18 11:19:10 -08:00
collections bpo-43102: Set namedtuple __new__'s internal builtins to a dict. (GH-24439) (GH-24452) 2021-02-04 16:12:34 -08:00
concurrent bpo-35930: Raising an exception raised in a "future" instance will create reference cycles (GH-24995) (#25070) 2021-03-29 19:53:54 +02:00
ctypes bpo-32745: Fix a regression in the handling of ctypes' c_wchar_p type (GH-8721) (#25812) 2021-05-02 13:03:10 +02:00
curses
dbm
distutils bpo-42504: Ensure that get_config_var('MACOSX_DEPLOYMENT_TARGET') is a string (GH-24341) (GH-24410) 2021-01-31 23:22:48 -05:00
email bpo-27321 Fix email.generator.py to not replace a non-existent header. (GH-18074) 2020-10-19 16:11:37 -07:00
encodings bpo-30566: Fix IndexError when using punycode codec (GH-18632) 2020-02-25 06:19:03 +03:00
ensurepip [3.9] bpo-43993: Update vendored pip to 21.1.1 (GH-25761). (GH-25782) 2021-05-01 16:49:34 +01:00
html bpo-41748: Handles unquoted attributes with commas (GH-24072) 2021-02-01 12:54:43 -08:00
http bpo-43972: Set content-length to 0 for http.server.SimpleHTTPRequestHandler 301s (GH-25705) 2021-05-06 12:50:54 -07:00
idlelib [3.9] bpo-43655: Tkinter and IDLE dialog windows are now recognized as dialogs by window managers on macOS and X Window (GH-25187). (GH-25588) 2021-04-25 13:49:31 +03:00
importlib bpo-43105: Importlib now resolves relative paths when creating module spec objects from file locations (GH-25121) 2021-04-07 12:35:36 +01:00
json bpo-39828: Fix json.tool to catch BrokenPipeError (GH-18779) 2020-03-10 08:41:44 +01:00
lib2to3 bpo-36541: Add lib2to3 grammar PEP-570 pos-only arg parsing (GH-23759) 2020-12-14 09:38:03 -08:00
logging [3.9] bpo-43353: Document that logging.getLevelName() accepts string representation of logging level. (GH-24693) (GH-24826) 2021-03-12 00:46:07 -08:00
msilib
multiprocessing Fix typo in message from assert statement (GH-21283) 2020-09-04 15:55:05 -07:00
pydoc_data Python 3.9.5 2021-05-03 16:54:42 +02:00
site-packages
sqlite3 bpo-40810: Fix CheckTraceCallbackContent for SQLite pre 3.7.15 (GH-20530) 2021-01-04 15:41:03 -08:00
test bpo-43972: Set content-length to 0 for http.server.SimpleHTTPRequestHandler 301s (GH-25705) 2021-05-06 12:50:54 -07:00
tkinter [3.9] bpo-43655: Tkinter and IDLE dialog windows are now recognized as dialogs by window managers on macOS and X Window (GH-25187). (GH-25588) 2021-04-25 13:49:31 +03:00
turtledemo [3.9] Fix typo in turtledemo.two_canvases. (GH-25194) 2021-04-05 13:43:15 -04:00
unittest bpo-39101: Fixes BaseException hang in IsolatedAsyncioTestCase. (GH-22654) 2020-12-16 09:56:10 -08:00
urllib [3.9] bpo-43882 Remove the newline, and tab early. From query and fragments. (#25853) 2021-05-03 12:08:59 -07:00
venv bpo-38972: Fix typos in PowerShell Execution Policies links (GH-20383) 2020-05-25 08:13:49 -07:00
wsgiref
xml bpo-43399: Fix ElementTree.extend not working on iterators (GH-24751) 2021-03-30 14:36:25 -07:00
xmlrpc bpo-43433: Preserve query and fragment in the URL of the server in ServerProxy. (GH-25057) 2021-03-29 07:43:02 -07:00
zoneinfo [3.9] fix typo in warning (GH-20620) (#25601) 2021-04-25 12:25:51 -07:00
__future__.py bpo-41314: fixed annotations __future__ version (GH-21616) 2020-07-25 15:00:48 -07:00
__phello__.foo.py
_aix_support.py bpo-43666: Lib/_aix_support.py routines may fail in a WPAR environment (GH-25095) (#25880) 2021-05-04 11:00:47 +02:00
_bootlocale.py
_bootsubprocess.py bpo-40094: Add os.waitstatus_to_exitcode() (GH-19201) 2020-04-01 18:49:29 +02:00
_collections_abc.py bpo-42195: Override _CallableGenericAlias's __getitem__ (GH-23915) 2020-12-23 19:07:51 -08:00
_compat_pickle.py
_compression.py
_markupbase.py
_osx_support.py [3.9] bpo-41100: Support macOS 11 and Apple Silicon (GH-22855) (GH-23295) 2020-11-22 11:18:40 +01:00
_py_abc.py
_pydecimal.py bpo-39794: Add --without-decimal-contextvar (#18702) 2020-02-29 19:43:42 +01:00
_pyio.py bpo-39674: Revert "bpo-37330: open() no longer accept 'U' in file mode (GH-16959)" (GH-18767) 2020-03-04 18:50:22 +01:00
_sitebuiltins.py
_strptime.py Fix outdated comment in _strptime.py (GH-17929) 2020-01-12 12:53:00 -08:00
_threading_local.py
_weakrefset.py bpo-39481: Make weakref and WeakSet generic (GH-19497) 2020-04-13 21:54:40 -07:00
abc.py
aifc.py
antigravity.py bpo-9216: Nobody expects the geohashing FIPS inquisition (GH-19520) 2020-04-14 12:49:11 -07:00
argparse.py bpo-40862: Raise TypeError when const is given to argparse.BooleanOptionalAction (GH-20623) (GH-20664) 2020-06-05 19:31:18 -07:00
ast.py Fix typo in ast.py (GH-25740) (GH-25894) 2021-05-04 06:39:08 -07:00
asynchat.py
asyncore.py
base64.py bpo-39068: Fix race condition in base64 (GH-17627) 2021-01-01 12:42:44 -08:00
bdb.py bpo-39649: Remove obsolete check for __args__ in bdb.Bdb.format_stack_entry (GH-18531) 2020-02-23 22:14:53 -05:00
binhex.py [3.9] bpo-29566: binhex.binhex now consitently writes MacOS 9 line endings. (GH-23059) (GH-23071) 2020-11-01 01:39:26 -08:00
bisect.py
bz2.py bpo-40443: Remove unused imports in the stdlib (GH-19803) 2020-04-30 11:26:33 +02:00
calendar.py
cgi.py [3.9] bpo-42967: only use '&' as a query string separator (GH-24297) (#24528) 2021-02-15 10:03:31 -08:00
cgitb.py
chunk.py
cmd.py
code.py Fix documentation in code.py (GH-17988) 2020-01-15 01:17:25 +05:30
codecs.py bpo-14014: Clarify StreamWriter.reset() documentation (GH-13716) 2021-01-06 04:27:30 +02:00
codeop.py [3.9] bpo-41520: Fix second codeop regression (GH-21848) 2020-08-13 14:21:32 -04:00
colorsys.py
compileall.py bpo-40495: compileall option to hardlink duplicate pyc files (GH-19901) 2020-05-14 16:17:22 +02:00
configparser.py
contextlib.py bpo-39481: Implementation for PEP 585 (#18239) 2020-04-07 09:50:06 -07:00
contextvars.py
copy.py bpo-38293: Allow shallow and deep copying of property objects (GH-16438) 2020-01-12 09:41:49 -08:00
copyreg.py [3.9] bpo-41052: Fix pickling heap types implemented in C with protocols 0 and 1 (GH-22870). (GH-22963) 2020-10-25 17:56:17 +02:00
cProfile.py bpo-42005: profile and cProfile catch BrokenPipeError (GH-22643) 2021-01-20 01:19:08 -08:00
crypt.py
csv.py
dataclasses.py Fix typo in a dataclasses comment. (GH-25454) 2021-04-17 07:13:44 -07:00
datetime.py Fix typo (GH-23019) 2021-02-03 13:48:22 -08:00
decimal.py
difflib.py bpo-40394 - difflib.SequenceMatched.find_longest_match default args (GH-19742) 2020-04-29 22:42:45 -05:00
dis.py bpo-41497: Fix potential UnicodeDecodeError in dis CLI (GH-21757) 2020-08-07 20:24:12 -07:00
doctest.py bpo-1812: Fix newline conversion when doctest.testfile loads from a package whose loader has a get_data method (GH-17385) 2020-03-26 10:53:16 -05:00
enum.py [3.9] bpo-42248: [Enum] ensure exceptions raised in `_missing_` are released (GH-25350). (GH-25370) 2021-04-12 15:03:29 -07:00
filecmp.py bpo-39481: PEP 585 for difflib, filecmp, fileinput (#19422) 2020-04-09 21:47:31 -07:00
fileinput.py bpo-39481: PEP 585 for difflib, filecmp, fileinput (#19422) 2020-04-09 21:47:31 -07:00
fnmatch.py bpo-36769: Document that fnmatch.filter supports any kind of iterable (GH-13039) 2020-12-18 11:34:27 -08:00
formatter.py
fractions.py bpo-39350: Fix fractions for int subclasses (GH-18375) 2020-02-07 23:42:51 +01:00
ftplib.py bpo-43285 Make ftplib not trust the PASV response. (GH-24838) 2021-03-15 12:02:45 -07:00
functools.py bpo-17005: Move topological sort functionality to its own module (GH-20558) 2020-05-31 17:01:37 -07:00
genericpath.py
getopt.py
getpass.py update docstring for win_getpass to reflect code changes (GH-24967) 2021-05-04 00:10:32 -07:00
gettext.py bpo-40275: Import locale module lazily in gettext (GH-19905) 2020-05-14 03:22:30 +02:00
glob.py bpo-38149: Call sys.audit() only once per call for glob.glob(). (GH-18360) 2020-02-06 10:26:37 +02:00
graphlib.py [doc] Fix typo in the graphlib docs (GH-22661) (GH-22669) 2020-10-12 21:27:05 +01:00
gzip.py bpo-43316: gzip: Fix sys.exit() usage. (GH-24652) 2021-02-25 18:36:27 -08:00
hashlib.py [3.9] Improve blake2 comment for Victor (GH-20981) (GH-20982) 2020-07-28 12:29:46 -07:00
heapq.py
hmac.py [3.9] bpo-40791: Use CRYPTO_memcmp() for compare_digest (GH-20456) (GH-20461) 2020-05-28 05:09:38 -07:00
imaplib.py bpo-40375: Implement imaplib.IMAP4.unselect (GH-19712) 2020-04-27 23:52:55 +09:00
imghdr.py [3.9] bpo-41043: Escape literal part of the path for glob(). (GH-20994). (GH-21275) 2020-07-02 10:05:16 +03:00
imp.py bpo-39674: Revert "bpo-37330: open() no longer accept 'U' in file mode (GH-16959)" (GH-18767) 2020-03-04 18:50:22 +01:00
inspect.py bpo-17735: inspect.findsource now raises OSError when co_lineno is out of range (GH-23633) 2020-12-05 00:41:58 +02:00
io.py
ipaddress.py bpo-36384: Leading zeros in IPv4 addresses are no longer tolerated (GH-25099) (GH-25815) 2021-05-02 15:49:03 +02:00
keyword.py [3.9] Include soft keywords in keyword.py (GH-20877). (GH-20880) 2020-06-15 04:31:05 +01:00
linecache.py issue-25872: Fix KeyError using linecache from multiple threads (GH-18007) 2020-05-13 18:41:57 -04:00
locale.py bpo-38536: locale: Remove trailing space in formatted currency (GH-16864) 2020-01-20 12:45:50 +09:00
lzma.py
mailbox.py bpo-39481: PEP 585 for dataclasses, mailbox, contextvars (GH-19425) 2020-04-14 16:14:15 -07:00
mailcap.py bpo-40094: mailcap.test() uses waitstatus_to_exitcode() (GH-19287) 2020-04-02 02:00:06 +02:00
mimetypes.py bpo-41048: mimetypes should read the rule file using UTF-8, not the locale encoding (GH-20998) 2020-06-29 05:07:31 -07:00
modulefinder.py bpo-40443: Remove unused imports in the stdlib (GH-19803) 2020-04-30 11:26:33 +02:00
netrc.py
nntplib.py bpo-39305: Update nntplib to merge nntplib.NNTP and nntplib._NNTPBase (GH-19817) 2020-05-16 19:31:54 +09:00
ntpath.py
nturl2path.py bpo-43607: Fix urllib handling of Windows paths with \\?\ prefix (GH-25539) 2021-04-23 10:28:05 -07:00
numbers.py
opcode.py bpo-39320: Handle unpacking of **values in compiler (GH-18141) 2020-01-27 09:57:45 +00:00
operator.py
optparse.py
os.py bpo-39481: Implementation for PEP 585 (#18239) 2020-04-07 09:50:06 -07:00
pathlib.py bpo-44040: Update broken link in pathlib source (GH-25905) (GH-25911) 2021-05-05 10:53:54 +02:00
pdb.py [3.9] bpo-26053: Fix args echoed by pdb run command (GH-25149) 2021-04-02 13:16:55 +02:00
pickle.py bpo-42406: Fix whichmodule() with multiprocessing (GH-23403) 2020-11-29 10:47:31 -08:00
pickletools.py
pipes.py
pkgutil.py bpo-12915: Improve Unicode support for package names and attributes. (GH-18517) 2020-02-28 14:26:27 +00:00
platform.py bpo-43284: Update platform.win32_ver to use _syscmd_ver instead of sys.getwindowsversion() (GH-25500) 2021-04-23 19:09:20 +01:00
plistlib.py bpo-42249: Fix writing binary Plist files larger than 4 GiB. (GH-23121) 2020-11-03 13:32:59 -08:00
poplib.py bpo-39259: poplib now rejects timeout = 0 (GH-17912) 2020-01-10 15:34:05 +01:00
posixpath.py
pprint.py
profile.py bpo-42005: profile and cProfile catch BrokenPipeError (GH-22643) 2021-01-20 01:19:08 -08:00
pstats.py bpo-41811: create SortKey members using first given value (GH-22316) (GH-22325) 2020-09-19 12:56:13 -07:00
pty.py bpo-39184: Add audit events to command execution functions in os and pty modules (GH-17824) 2020-02-05 11:15:00 +11:00
py_compile.py bpo-38731: Fix NameError in command-line interface of py_compile (GH-21617) 2020-07-25 23:43:47 +03:00
pyclbr.py
pydoc.py bpo-42988: Remove the pydoc getfile feature (GH-25015) 2021-03-29 06:08:00 -07:00
queue.py bpo-39481: PEP 585 for a variety of modules (GH-19423) 2020-04-10 07:46:36 -07:00
quopri.py
random.py bpo-44018: random.seed() no longer mutates its inputs (GH-25856) (GH-25864) 2021-05-03 16:36:14 -07:00
re.py bpo-40016: re docstring: Clarify relationship of inline and argument flags (#19078) 2020-03-25 14:44:47 -04:00
reprlib.py
rlcompleter.py
runpy.py bpo-40108: Improve the error message in runpy when importing a module that includes the extension (GH-19239) 2020-03-31 12:23:55 +01:00
sched.py
secrets.py bpo-40286: Add randbytes() method to random.Random (GH-19527) 2020-04-17 19:05:35 +02:00
selectors.py bpo-41182 selector: use DefaultSelector based upon implementation (GH-21257) 2020-07-26 08:32:25 -07:00
shelve.py
shlex.py bpo-33262: Deprecate passing None for s to shlex.split() (GH-6514) 2020-04-01 09:58:55 -04:00
shutil.py [3.9] bpo-42782: Fail fast for permission errors in shutil.move() (GH-24001) (#24725) 2021-03-03 08:04:00 -08:00
signal.py
site.py bpo-41193: Ignore OSError in readline write_history() (GH-21279) 2020-07-02 04:02:16 -07:00
smtpd.py
smtplib.py Quick pydoc update to smtplib.py (GH-22292) (GH-25615) 2021-04-25 21:03:54 -07:00
sndhdr.py [3.9] bpo-41043: Escape literal part of the path for glob(). (GH-20994). (GH-21275) 2020-07-02 10:05:16 +03:00
socket.py Fix host in address of socket.create_server example. (GH-17706) 2020-01-11 10:46:30 +05:30
socketserver.py [3.9] bpo-37193: Remove thread objects which finished process its request (GH-23127) (GH-24750) 2021-03-04 08:36:41 -08:00
sre_compile.py
sre_constants.py
sre_parse.py
ssl.py bpo-40443: Remove unused imports in stdlib (GH-19815) 2020-05-01 02:38:00 +02:00
stat.py
statistics.py Some reformatting (suggested by Black) and minor factoring. (GH-20865) (GH-20866) 2020-06-13 19:53:32 -07:00
string.py
stringprep.py
struct.py
subprocess.py bpo-43423 Fix IndexError in subprocess _communicate function (GH-24777) 2021-03-11 17:56:35 -08:00
sunau.py
symbol.py bpo-40759: Deprecate the symbol module (GH-20364) 2020-05-31 15:23:29 -07:00
symtable.py [3.9] bpo-41840: Report module-level globals as both local and global in the symtable module (GH-22391). (GH-22528) 2020-10-03 21:23:03 +01:00
sysconfig.py bpo-42504: Ensure that get_config_var('MACOSX_DEPLOYMENT_TARGET') is a string (GH-24341) (GH-24410) 2021-01-31 23:22:48 -05:00
tabnanny.py
tarfile.py bpo-12800: tarfile: Restore fix from 011525ee9 (GH-21409) 2020-11-25 01:52:51 -08:00
telnetlib.py
tempfile.py bpo-41410: Fix outdated info in mkstemp docs (GH-21701) 2020-08-13 18:53:43 -07:00
textwrap.py
this.py
threading.py bpo-42350: Fix Thread._reset_internal_locks() (GH-23268) 2020-11-16 07:17:17 -08:00
timeit.py bpo-40419: timeit CLI docs now mention 1,2,5,10,... trials instead of powers of 10 (GH-19752) 2020-05-02 19:12:05 +03:00
token.py
tokenize.py
trace.py bpo-41138: Fix trace CLI for non-UTF-8 files. (GH-21177) 2020-06-28 03:52:26 -07:00
traceback.py bpo-34463: Make python tracebacks identical to C tracebacks for SyntaxErrors without a lineno (GH-23427) 2020-12-22 14:12:30 -08:00
tracemalloc.py bpo-37961: Fix regression in tracemalloc.Traceback.__repr__ (GH-23805) 2020-12-16 14:01:14 -08:00
tty.py
turtle.py bpo-43935: Fix typo in Turtle.back() docstring (GH-25581) 2021-04-30 15:27:48 -07:00
types.py bpo-39481: Implementation for PEP 585 (#18239) 2020-04-07 09:50:06 -07:00
typing.py bpo-38352: Add to typing.__all__ (GH-25821) (#25885) 2021-05-04 12:02:49 +02:00
uu.py bpo-38945: UU Encoding: Don't let newline in filename corrupt the output format (#17418) 2019-12-02 14:25:21 -08:00
uuid.py bpo-41364: Reduce import overhead of uuid module (GH-21586) 2020-07-21 17:09:32 -07:00
warnings.py bpo-39056: Fix handling invalid warning category in the -W option. (GH-17618) 2020-01-05 14:15:27 +02:00
wave.py
weakref.py bpo-36144: Add union operators to WeakValueDictionary584 (#19127) 2020-03-24 18:51:29 -07:00
webbrowser.py bpo-41754: Ignore NotADirectoryError in invocation of xdg-settings (GH-23075) 2020-11-08 02:07:44 -08:00
xdrlib.py
zipapp.py
zipfile.py bpo-40105: ZipFile truncate in append mode with shorter comment (GH-19337) 2020-09-28 13:18:47 -07:00
zipimport.py [3.9] bpo-40924: Revert "bpo-39791 native hooks for importlib.resources.files (GH-20576)" (#20760) 2020-06-09 19:50:01 +02:00