bpo-44740: Lowercase "internet" and "web" where appropriate. (GH-27378) (GH-27380)

Co-authored-by: Ɓukasz Langa <lukasz@langa.pl>
(cherry picked from commit 11749e2dc20ad6a76e9a39e948853e89b2b4bbed)

Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
diff --git a/Doc/bugs.rst b/Doc/bugs.rst
index a17f04d..8ffc8b1 100644
--- a/Doc/bugs.rst
+++ b/Doc/bugs.rst
@@ -41,7 +41,7 @@
 ==============================
 
 Bug reports for Python itself should be submitted via the Python Bug Tracker
-(https://bugs.python.org/).  The bug tracker offers a Web form which allows
+(https://bugs.python.org/).  The bug tracker offers a web form which allows
 pertinent information to be entered and submitted to the developers.
 
 The first step in filing a report is to determine whether the problem has
diff --git a/Doc/faq/general.rst b/Doc/faq/general.rst
index cf70f16..7723114 100644
--- a/Doc/faq/general.rst
+++ b/Doc/faq/general.rst
@@ -113,7 +113,7 @@
 
 The language comes with a large standard library that covers areas such as
 string processing (regular expressions, Unicode, calculating differences between
-files), Internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, CGI
+files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, CGI
 programming), software engineering (unit testing, logging, profiling, parsing
 Python code), and operating system interfaces (system calls, filesystems, TCP/IP
 sockets).  Look at the table of contents for :ref:`library-index` to get an idea
diff --git a/Doc/faq/library.rst b/Doc/faq/library.rst
index 4d27abd..45c20bd 100644
--- a/Doc/faq/library.rst
+++ b/Doc/faq/library.rst
@@ -20,7 +20,7 @@
 
 For third-party packages, search the `Python Package Index
 <https://pypi.org>`_ or try `Google <https://www.google.com>`_ or
-another Web search engine.  Searching for "Python" plus a keyword or two for
+another web search engine.  Searching for "Python" plus a keyword or two for
 your topic of interest will usually find something helpful.
 
 
diff --git a/Doc/howto/ipaddress.rst b/Doc/howto/ipaddress.rst
index 452e367..46ba69a 100644
--- a/Doc/howto/ipaddress.rst
+++ b/Doc/howto/ipaddress.rst
@@ -32,7 +32,7 @@
 ---------------------
 
 For readers that aren't particularly familiar with IP addressing, it's
-important to know that the Internet Protocol is currently in the process
+important to know that the internet protocol is currently in the process
 of moving from version 4 of the protocol to version 6. This transition is
 occurring largely because version 4 of the protocol doesn't provide enough
 addresses to handle the needs of the whole world, especially given the
diff --git a/Doc/howto/logging-cookbook.rst b/Doc/howto/logging-cookbook.rst
index 20b02c8..2ab8c52 100644
--- a/Doc/howto/logging-cookbook.rst
+++ b/Doc/howto/logging-cookbook.rst
@@ -332,7 +332,7 @@
 .. currentmodule:: logging.handlers
 
 Sometimes you have to get your logging handlers to do their work without
-blocking the thread you're logging from. This is common in Web applications,
+blocking the thread you're logging from. This is common in web applications,
 though of course it also occurs in other scenarios.
 
 A common culprit which demonstrates sluggish behaviour is the
diff --git a/Doc/howto/sockets.rst b/Doc/howto/sockets.rst
index d6ed128..e58f78a 100644
--- a/Doc/howto/sockets.rst
+++ b/Doc/howto/sockets.rst
@@ -45,7 +45,7 @@
 cross-platform communication, sockets are about the only game in town.
 
 They were invented in Berkeley as part of the BSD flavor of Unix. They spread
-like wildfire with the Internet. With good reason --- the combination of sockets
+like wildfire with the internet. With good reason --- the combination of sockets
 with INET makes talking to arbitrary machines around the world unbelievably easy
 (at least compared to other schemes).
 
diff --git a/Doc/install/index.rst b/Doc/install/index.rst
index 48c6e76..dbe9c1e 100644
--- a/Doc/install/index.rst
+++ b/Doc/install/index.rst
@@ -953,7 +953,7 @@
 This subsection describes the necessary steps to use Distutils with the Borland
 C++ compiler version 5.5.  First you have to know that Borland's object file
 format (OMF) is different from the format used by the Python version you can
-download from the Python or ActiveState Web site.  (Python is built with
+download from the Python or ActiveState web site.  (Python is built with
 Microsoft Visual C++, which uses COFF as the object file format.) For this
 reason you have to convert Python's library :file:`python25.lib` into the
 Borland format.  You can do this as follows:
diff --git a/Doc/library/cgi.rst b/Doc/library/cgi.rst
index d3bd20d..1494fa7 100644
--- a/Doc/library/cgi.rst
+++ b/Doc/library/cgi.rst
@@ -73,7 +73,7 @@
    cgitb.enable()
 
 This activates a special exception handler that will display detailed reports in
-the Web browser if any errors occur.  If you'd rather not show the guts of your
+the web browser if any errors occur.  If you'd rather not show the guts of your
 program to users of your script, you can have the reports saved to files
 instead, with code like this::
 
@@ -350,7 +350,7 @@
 :func:`os.system`, :func:`os.popen` or other functions with similar
 functionality), make very sure you don't pass arbitrary strings received from
 the client to the shell.  This is a well-known security hole whereby clever
-hackers anywhere on the Web can exploit a gullible CGI script to invoke
+hackers anywhere on the web can exploit a gullible CGI script to invoke
 arbitrary shell commands.  Even parts of the URL or field names cannot be
 trusted, since the request doesn't have to come from your form!
 
@@ -457,7 +457,7 @@
 discarded altogether.
 
 Fortunately, once you have managed to get your script to execute *some* code,
-you can easily send tracebacks to the Web browser using the :mod:`cgitb` module.
+you can easily send tracebacks to the web browser using the :mod:`cgitb` module.
 If you haven't done so already, just add the lines::
 
    import cgitb
diff --git a/Doc/library/ftplib.rst b/Doc/library/ftplib.rst
index 3a9165a..2f94ac4 100644
--- a/Doc/library/ftplib.rst
+++ b/Doc/library/ftplib.rst
@@ -17,7 +17,7 @@
 this to write Python programs that perform a variety of automated FTP jobs, such
 as mirroring other FTP servers.  It is also used by the module
 :mod:`urllib.request` to handle URLs that use FTP.  For more information on FTP
-(File Transfer Protocol), see Internet :rfc:`959`.
+(File Transfer Protocol), see internet :rfc:`959`.
 
 The default encoding is UTF-8, following :rfc:`2640`.
 
diff --git a/Doc/library/hashlib.rst b/Doc/library/hashlib.rst
index d77a2e5..d22efa2 100644
--- a/Doc/library/hashlib.rst
+++ b/Doc/library/hashlib.rst
@@ -23,7 +23,7 @@
 This module implements a common interface to many different secure hash and
 message digest algorithms.  Included are the FIPS secure hash algorithms SHA1,
 SHA224, SHA256, SHA384, and SHA512 (defined in FIPS 180-2) as well as RSA's MD5
-algorithm (defined in Internet :rfc:`1321`).  The terms "secure hash" and
+algorithm (defined in internet :rfc:`1321`).  The terms "secure hash" and
 "message digest" are interchangeable.  Older algorithms were called message
 digests.  The modern term is secure hash.
 
diff --git a/Doc/library/http.cookiejar.rst b/Doc/library/http.cookiejar.rst
index 7b1aa80..6234e65 100644
--- a/Doc/library/http.cookiejar.rst
+++ b/Doc/library/http.cookiejar.rst
@@ -20,7 +20,7 @@
 :rfc:`2965` are handled.  RFC 2965 handling is switched off by default.
 :rfc:`2109` cookies are parsed as Netscape cookies and subsequently treated
 either as Netscape or RFC 2965 cookies according to the 'policy' in effect.
-Note that the great majority of cookies on the Internet are Netscape cookies.
+Note that the great majority of cookies on the internet are Netscape cookies.
 :mod:`http.cookiejar` attempts to follow the de-facto Netscape cookie protocol (which
 differs substantially from that set out in the original Netscape specification),
 including taking note of the ``max-age`` and ``port`` cookie-attributes
diff --git a/Doc/library/http.server.rst b/Doc/library/http.server.rst
index 029e9ec..1aa0cba 100644
--- a/Doc/library/http.server.rst
+++ b/Doc/library/http.server.rst
@@ -14,7 +14,7 @@
 
 --------------
 
-This module defines classes for implementing HTTP servers (Web servers).
+This module defines classes for implementing HTTP servers (web servers).
 
 
 .. warning::
diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst
index faa34e6..91c5405 100644
--- a/Doc/library/idle.rst
+++ b/Doc/library/idle.rst
@@ -869,7 +869,7 @@
 
 By default, IDLE executes user code in a separate subprocess via a socket,
 which uses the internal loopback interface.  This connection is not
-externally visible and no data is sent to or received from the Internet.
+externally visible and no data is sent to or received from the internet.
 If firewall software complains anyway, you can ignore it.
 
 If the attempt to make the socket connection fails, Idle will notify you.
diff --git a/Doc/library/internet.rst b/Doc/library/internet.rst
index b8950bb..e745dd1 100644
--- a/Doc/library/internet.rst
+++ b/Doc/library/internet.rst
@@ -11,7 +11,7 @@
 
 .. index:: module: socket
 
-The modules described in this chapter implement Internet protocols and  support
+The modules described in this chapter implement internet protocols and  support
 for related technology.  They are all implemented in Python. Most of these
 modules require the presence of the system-dependent module :mod:`socket`, which
 is currently supported on most popular platforms.  Here is an overview:
diff --git a/Doc/library/logging.handlers.rst b/Doc/library/logging.handlers.rst
index 059ab3d..73c542b 100644
--- a/Doc/library/logging.handlers.rst
+++ b/Doc/library/logging.handlers.rst
@@ -927,7 +927,7 @@
 ^^^^^^^^^^^
 
 The :class:`HTTPHandler` class, located in the :mod:`logging.handlers` module,
-supports sending logging messages to a Web server, using either ``GET`` or
+supports sending logging messages to a web server, using either ``GET`` or
 ``POST`` semantics.
 
 
@@ -957,17 +957,17 @@
 
    .. method:: emit(record)
 
-      Sends the record to the Web server as a URL-encoded dictionary. The
+      Sends the record to the web server as a URL-encoded dictionary. The
       :meth:`mapLogRecord` method is used to convert the record to the
       dictionary to be sent.
 
-   .. note:: Since preparing a record for sending it to a Web server is not
+   .. note:: Since preparing a record for sending it to a web server is not
       the same as a generic formatting operation, using
       :meth:`~logging.Handler.setFormatter` to specify a
       :class:`~logging.Formatter` for a :class:`HTTPHandler` has no effect.
       Instead of calling :meth:`~logging.Handler.format`, this handler calls
       :meth:`mapLogRecord` and then :func:`urllib.parse.urlencode` to encode the
-      dictionary in a form suitable for sending to a Web server.
+      dictionary in a form suitable for sending to a web server.
 
 
 .. _queue-handler:
@@ -984,7 +984,7 @@
 
 Along with the :class:`QueueListener` class, :class:`QueueHandler` can be used
 to let handlers do their work on a separate thread from the one which does the
-logging. This is important in Web applications and also other service
+logging. This is important in web applications and also other service
 applications where threads servicing clients need to respond as quickly as
 possible, while any potentially slow operations (such as sending an email via
 :class:`SMTPHandler`) are done on a separate thread.
@@ -1046,7 +1046,7 @@
 
 Along with the :class:`QueueHandler` class, :class:`QueueListener` can be used
 to let handlers do their work on a separate thread from the one which does the
-logging. This is important in Web applications and also other service
+logging. This is important in web applications and also other service
 applications where threads servicing clients need to respond as quickly as
 possible, while any potentially slow operations (such as sending an email via
 :class:`SMTPHandler`) are done on a separate thread.
diff --git a/Doc/library/mailcap.rst b/Doc/library/mailcap.rst
index bf9639b..7749b7d 100644
--- a/Doc/library/mailcap.rst
+++ b/Doc/library/mailcap.rst
@@ -9,16 +9,16 @@
 --------------
 
 Mailcap files are used to configure how MIME-aware applications such as mail
-readers and Web browsers react to files with different MIME types. (The name
+readers and web browsers react to files with different MIME types. (The name
 "mailcap" is derived from the phrase "mail capability".)  For example, a mailcap
 file might contain a line like ``video/mpeg; xmpeg %s``.  Then, if the user
-encounters an email message or Web document with the MIME type
+encounters an email message or web document with the MIME type
 :mimetype:`video/mpeg`, ``%s`` will be replaced by a filename (usually one
 belonging to a temporary file) and the :program:`xmpeg` program can be
 automatically started to view the file.
 
 The mailcap format is documented in :rfc:`1524`, "A User Agent Configuration
-Mechanism For Multimedia Mail Format Information", but is not an Internet
+Mechanism For Multimedia Mail Format Information", but is not an internet
 standard.  However, mailcap files are supported on most Unix systems.
 
 
diff --git a/Doc/library/netdata.rst b/Doc/library/netdata.rst
index 4915016..e76280f 100644
--- a/Doc/library/netdata.rst
+++ b/Doc/library/netdata.rst
@@ -6,7 +6,7 @@
 **********************
 
 This chapter describes modules which support handling data formats commonly used
-on the Internet.
+on the internet.
 
 
 .. toctree::
diff --git a/Doc/library/pydoc.rst b/Doc/library/pydoc.rst
index f956b9d..94daf4a 100644
--- a/Doc/library/pydoc.rst
+++ b/Doc/library/pydoc.rst
@@ -18,7 +18,7 @@
 
 The :mod:`pydoc` module automatically generates documentation from Python
 modules.  The documentation can be presented as pages of text on the console,
-served to a Web browser, or saved to HTML files.
+served to a web browser, or saved to HTML files.
 
 For modules, classes, functions and methods, the displayed documentation is
 derived from the docstring (i.e. the :attr:`__doc__` attribute) of the object,
@@ -65,9 +65,9 @@
 module is the first line of its documentation string.
 
 You can also use :program:`pydoc` to start an HTTP server on the local machine
-that will serve documentation to visiting Web browsers.  :program:`pydoc -p 1234`
+that will serve documentation to visiting web browsers.  :program:`pydoc -p 1234`
 will start a HTTP server on port 1234, allowing you to browse the
-documentation at ``http://localhost:1234/`` in your preferred Web browser.
+documentation at ``http://localhost:1234/`` in your preferred web browser.
 Specifying ``0`` as the port number will select an arbitrary unused port.
 
 :program:`pydoc -n <hostname>` will start the server listening at the given
diff --git a/Doc/library/smtplib.rst b/Doc/library/smtplib.rst
index 52220f7..aaab6b1 100644
--- a/Doc/library/smtplib.rst
+++ b/Doc/library/smtplib.rst
@@ -15,7 +15,7 @@
 --------------
 
 The :mod:`smtplib` module defines an SMTP client session object that can be used
-to send mail to any Internet machine with an SMTP or ESMTP listener daemon.  For
+to send mail to any internet machine with an SMTP or ESMTP listener daemon.  For
 details of SMTP and ESMTP operation, consult :rfc:`821` (Simple Mail Transfer
 Protocol) and :rfc:`1869` (SMTP Service Extensions).
 
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst
index eb3090c..e1db1b5 100755
--- a/Doc/library/socket.rst
+++ b/Doc/library/socket.rst
@@ -66,7 +66,7 @@
 .. _host_port:
 
 - A pair ``(host, port)`` is used for the :const:`AF_INET` address family,
-  where *host* is a string representing either a hostname in Internet domain
+  where *host* is a string representing either a hostname in internet domain
   notation like ``'daring.cwi.nl'`` or an IPv4 address like ``'100.50.200.5'``,
   and *port* is an integer.
 
@@ -640,7 +640,7 @@
 
 .. function:: create_connection(address[, timeout[, source_address]])
 
-   Connect to a TCP service listening on the Internet *address* (a 2-tuple
+   Connect to a TCP service listening on the internet *address* (a 2-tuple
    ``(host, port)``), and return the socket object.  This is a higher-level
    function than :meth:`socket.connect`: if *host* is a non-numeric hostname,
    it will try to resolve it for both :data:`AF_INET` and :data:`AF_INET6`,
@@ -877,7 +877,7 @@
 
 .. function:: getprotobyname(protocolname)
 
-   Translate an Internet protocol name (for example, ``'icmp'``) to a constant
+   Translate an internet protocol name (for example, ``'icmp'``) to a constant
    suitable for passing as the (optional) third argument to the :func:`.socket`
    function.  This is usually only needed for sockets opened in "raw" mode
    (:const:`SOCK_RAW`); for the normal socket modes, the correct protocol is chosen
@@ -886,7 +886,7 @@
 
 .. function:: getservbyname(servicename[, protocolname])
 
-   Translate an Internet service name and protocol name to a port number for that
+   Translate an internet service name and protocol name to a port number for that
    service.  The optional protocol name, if given, should be ``'tcp'`` or
    ``'udp'``, otherwise any protocol will match.
 
@@ -895,7 +895,7 @@
 
 .. function:: getservbyport(port[, protocolname])
 
-   Translate an Internet port number and protocol name to a service name for that
+   Translate an internet port number and protocol name to a service name for that
    service.  The optional protocol name, if given, should be ``'tcp'`` or
    ``'udp'``, otherwise any protocol will match.
 
diff --git a/Doc/library/socketserver.rst b/Doc/library/socketserver.rst
index 232c061..b65a3e8 100644
--- a/Doc/library/socketserver.rst
+++ b/Doc/library/socketserver.rst
@@ -15,7 +15,7 @@
 
 .. class:: TCPServer(server_address, RequestHandlerClass, bind_and_activate=True)
 
-   This uses the Internet TCP protocol, which provides for
+   This uses the internet TCP protocol, which provides for
    continuous streams of data between the client and server.
    If *bind_and_activate* is true, the constructor automatically attempts to
    invoke :meth:`~BaseServer.server_bind` and
@@ -263,7 +263,7 @@
       The address on which the server is listening.  The format of addresses varies
       depending on the protocol family;
       see the documentation for the :mod:`socket` module
-      for details.  For Internet protocols, this is a tuple containing a string giving
+      for details.  For internet protocols, this is a tuple containing a string giving
       the address, and an integer port number: ``('127.0.0.1', 80)``, for example.
 
 
diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst
index 4b41d11..b96dda4 100644
--- a/Doc/library/ssl.rst
+++ b/Doc/library/ssl.rst
@@ -1056,7 +1056,7 @@
 
    Option for :func:`create_default_context` and
    :meth:`SSLContext.load_default_certs`.  This value indicates that the
-   context may be used to authenticate Web servers (therefore, it will
+   context may be used to authenticate web servers (therefore, it will
    be used to create client-side sockets).
 
    .. versionadded:: 3.4
@@ -1065,7 +1065,7 @@
 
    Option for :func:`create_default_context` and
    :meth:`SSLContext.load_default_certs`.  This value indicates that the
-   context may be used to authenticate Web clients (therefore, it will
+   context may be used to authenticate web clients (therefore, it will
    be used to create server-side sockets).
 
    .. versionadded:: 3.4
diff --git a/Doc/library/test.rst b/Doc/library/test.rst
index 7ee96d3..64d767e 100644
--- a/Doc/library/test.rst
+++ b/Doc/library/test.rst
@@ -267,10 +267,10 @@
 
 .. data:: INTERNET_TIMEOUT
 
-   Timeout in seconds for network requests going to the Internet.
+   Timeout in seconds for network requests going to the internet.
 
    The timeout is short enough to prevent a test to wait for too long if the
-   Internet request is blocked for whatever reason.
+   internet request is blocked for whatever reason.
 
    Usually, a timeout using :data:`INTERNET_TIMEOUT` should not mark a test as
    failed, but skip the test instead: see
diff --git a/Doc/library/urllib.parse.rst b/Doc/library/urllib.parse.rst
index 0aaac56..a060cc9 100644
--- a/Doc/library/urllib.parse.rst
+++ b/Doc/library/urllib.parse.rst
@@ -20,7 +20,7 @@
 combine the components back into a URL string, and to convert a "relative URL"
 to an absolute URL given a "base URL."
 
-The module has been designed to match the Internet RFC on Relative Uniform
+The module has been designed to match the internet RFC on Relative Uniform
 Resource Locators. It supports the following URL schemes: ``file``, ``ftp``,
 ``gopher``, ``hdl``, ``http``, ``https``, ``imap``, ``mailto``, ``mms``,
 ``news``, ``nntp``, ``prospero``, ``rsync``, ``rtsp``, ``rtspu``, ``sftp``,
diff --git a/Doc/library/urllib.request.rst b/Doc/library/urllib.request.rst
index b4435a6..130c7d6 100644
--- a/Doc/library/urllib.request.rst
+++ b/Doc/library/urllib.request.rst
@@ -1543,7 +1543,7 @@
 
 * The :func:`urlopen` and :func:`urlretrieve` functions can cause arbitrarily
   long delays while waiting for a network connection to be set up.  This means
-  that it is difficult to build an interactive Web client using these functions
+  that it is difficult to build an interactive web client using these functions
   without using threads.
 
   .. index::
diff --git a/Doc/library/urllib.robotparser.rst b/Doc/library/urllib.robotparser.rst
index 544f502..f063e46 100644
--- a/Doc/library/urllib.robotparser.rst
+++ b/Doc/library/urllib.robotparser.rst
@@ -19,7 +19,7 @@
 
 This module provides a single class, :class:`RobotFileParser`, which answers
 questions about whether or not a particular user agent can fetch a URL on the
-Web site that published the :file:`robots.txt` file.  For more details on the
+web site that published the :file:`robots.txt` file.  For more details on the
 structure of :file:`robots.txt` files, see http://www.robotstxt.org/orig.html.
 
 
diff --git a/Doc/library/webbrowser.rst b/Doc/library/webbrowser.rst
index b7bfb65..85a15b4 100644
--- a/Doc/library/webbrowser.rst
+++ b/Doc/library/webbrowser.rst
@@ -1,8 +1,8 @@
-:mod:`webbrowser` --- Convenient Web-browser controller
+:mod:`webbrowser` --- Convenient web-browser controller
 =======================================================
 
 .. module:: webbrowser
-   :synopsis: Easy-to-use controller for Web browsers.
+   :synopsis: Easy-to-use controller for web browsers.
 
 .. moduleauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
 .. sectionauthor:: Fred L. Drake, Jr. <fdrake@acm.org>
@@ -12,7 +12,7 @@
 --------------
 
 The :mod:`webbrowser` module provides a high-level interface to allow displaying
-Web-based documents to users. Under most circumstances, simply calling the
+web-based documents to users. Under most circumstances, simply calling the
 :func:`.open` function from this module will do the right thing.
 
 Under Unix, graphical browsers are preferred under X11, but text-mode browsers
diff --git a/Doc/license.rst b/Doc/license.rst
index d459ff6..c36ab32 100644
--- a/Doc/license.rst
+++ b/Doc/license.rst
@@ -203,9 +203,9 @@
       Licensee may substitute the following text (omitting the quotes): "Python 1.6.1
       is made available subject to the terms and conditions in CNRI's License
       Agreement.  This Agreement together with Python 1.6.1 may be located on the
-      Internet using the following unique, persistent identifier (known as a handle):
+      internet using the following unique, persistent identifier (known as a handle):
       1895.22/1013.  This Agreement may also be obtained from a proxy server on the
-      Internet using the following URL: http://hdl.handle.net/1895.22/1013."
+      internet using the following URL: http://hdl.handle.net/1895.22/1013."
 
    3. In the event Licensee prepares a derivative work that is based on or
       incorporates Python 1.6.1 or any part thereof, and wants to make the derivative
diff --git a/Doc/tutorial/controlflow.rst b/Doc/tutorial/controlflow.rst
index 494a795..3473078 100644
--- a/Doc/tutorial/controlflow.rst
+++ b/Doc/tutorial/controlflow.rst
@@ -267,7 +267,7 @@
             case 418:
                 return "I'm a teapot"
             case _:
-                return "Something's wrong with the Internet"
+                return "Something's wrong with the internet"
 
 Note the last block: the "variable name" ``_`` acts as a *wildcard* and
 never fails to match. If no case matches, none of the branches is executed.
diff --git a/Doc/tutorial/index.rst b/Doc/tutorial/index.rst
index 8ee011e..96791f8 100644
--- a/Doc/tutorial/index.rst
+++ b/Doc/tutorial/index.rst
@@ -11,7 +11,7 @@
 and rapid application development in many areas on most platforms.
 
 The Python interpreter and the extensive standard library are freely available
-in source or binary form for all major platforms from the Python Web site,
+in source or binary form for all major platforms from the Python web site,
 https://www.python.org/, and may be freely distributed. The same site also
 contains distributions of and pointers to many free third party Python modules,
 programs and tools, and additional documentation.
diff --git a/Doc/tutorial/whatnow.rst b/Doc/tutorial/whatnow.rst
index 3208201..18805da 100644
--- a/Doc/tutorial/whatnow.rst
+++ b/Doc/tutorial/whatnow.rst
@@ -30,8 +30,8 @@
 
 More Python resources:
 
-* https://www.python.org:  The major Python Web site.  It contains code,
-  documentation, and pointers to Python-related pages around the Web.  This Web
+* https://www.python.org:  The major Python web site.  It contains code,
+  documentation, and pointers to Python-related pages around the web.  This web
   site is mirrored in various places around the world, such as Europe, Japan, and
   Australia; a mirror may be faster than the main site, depending on your
   geographical location.
diff --git a/Doc/whatsnew/2.0.rst b/Doc/whatsnew/2.0.rst
index ace396b..c0a6692 100644
--- a/Doc/whatsnew/2.0.rst
+++ b/Doc/whatsnew/2.0.rst
@@ -108,7 +108,7 @@
 Discussions of new features can often explode into lengthy mailing list threads,
 making the discussion hard to follow, and no one can read every posting to
 python-dev.  Therefore, a relatively formal process has been set up to write
-Python Enhancement Proposals (PEPs), modelled on the Internet RFC process.  PEPs
+Python Enhancement Proposals (PEPs), modelled on the internet RFC process.  PEPs
 are draft documents that describe a proposed new feature, and are continually
 revised until the community reaches a consensus, either accepting or rejecting
 the proposal.  Quoting from the introduction to :pep:`1`, "PEP Purpose and
@@ -768,7 +768,7 @@
 it easy to have the Python interpreter use a custom allocator instead of C's
 standard :func:`malloc`.  For documentation, read the comments in
 :file:`Include/pymem.h` and :file:`Include/objimpl.h`.  For the lengthy
-discussions during which the interface was hammered out, see the Web archives of
+discussions during which the interface was hammered out, see the web archives of
 the 'patches' and 'python-dev' lists at python.org.
 
 Recent versions of the GUSI development environment for MacOS support POSIX
@@ -1002,7 +1002,7 @@
 ---------------------
 
 The XML Special Interest Group has been working on XML-related Python code for a
-while.  Its code distribution, called PyXML, is available from the SIG's Web
+while.  Its code distribution, called PyXML, is available from the SIG's web
 pages at https://www.python.org/community/sigs/current/xml-sig. The PyXML distribution also used
 the package name ``xml``.  If you've written programs that used PyXML, you're
 probably wondering about its compatibility with the 2.0 :mod:`xml` package.
@@ -1109,7 +1109,7 @@
   Prescod.)
 
 * :mod:`robotparser`: Parse a :file:`robots.txt` file, which is used for writing
-  Web spiders that politely avoid certain areas of a Web site.  The parser accepts
+  web spiders that politely avoid certain areas of a web site.  The parser accepts
   the contents of a :file:`robots.txt` file, builds a set of rules from it, and
   can then answer questions about the fetchability of a given URL.  (Contributed
   by Skip Montanaro.)
diff --git a/Doc/whatsnew/2.1.rst b/Doc/whatsnew/2.1.rst
index 8b1eac9..b690f90 100644
--- a/Doc/whatsnew/2.1.rst
+++ b/Doc/whatsnew/2.1.rst
@@ -425,7 +425,7 @@
 In Python 2.1, functions can now have arbitrary information attached to them.
 People were often using docstrings to hold information about functions and
 methods, because the ``__doc__`` attribute was the only way of attaching any
-information to a function.  For example, in the Zope Web application server,
+information to a function.  For example, in the Zope web application server,
 functions are marked as safe for public access by having a docstring, and in
 John Aycock's SPARK parsing framework, docstrings hold parts of the BNF grammar
 to be parsed.  This overloading is unfortunate, since docstrings are really
diff --git a/Doc/whatsnew/2.2.rst b/Doc/whatsnew/2.2.rst
index b4cd434..9355c1b 100644
--- a/Doc/whatsnew/2.2.rst
+++ b/Doc/whatsnew/2.2.rst
@@ -49,7 +49,7 @@
 complicated section of this article, I'll provide an overview of the changes and
 offer some comments.
 
-A long time ago I wrote a Web page listing flaws in Python's design.  One of the
+A long time ago I wrote a web page listing flaws in Python's design.  One of the
 most significant flaws was that it's impossible to subclass Python types
 implemented in C.  In particular, it's not possible to subclass built-in types,
 so you can't just subclass, say, lists in order to add a single useful method to
diff --git a/Doc/whatsnew/2.3.rst b/Doc/whatsnew/2.3.rst
index dac0e63..7d09302 100644
--- a/Doc/whatsnew/2.3.rst
+++ b/Doc/whatsnew/2.3.rst
@@ -672,7 +672,7 @@
    from distutils import core
    kw = {'name': "Quixote",
          'version': "0.5.1",
-         'description': "A highly Pythonic Web application framework",
+         'description': "A highly Pythonic web application framework",
          # ...
          }
 
@@ -1650,7 +1650,7 @@
 
 * The new :mod:`DocXMLRPCServer` module allows writing self-documenting XML-RPC
   servers. Run it in demo mode (as a program) to see it in action.   Pointing the
-  Web browser to the RPC server produces pydoc-style documentation; pointing
+  web browser to the RPC server produces pydoc-style documentation; pointing
   xmlrpclib to the server allows invoking the actual methods. (Contributed by
   Brian Quinlan.)
 
diff --git a/Doc/whatsnew/3.10.rst b/Doc/whatsnew/3.10.rst
index 6a61c4d..d84ee13 100644
--- a/Doc/whatsnew/3.10.rst
+++ b/Doc/whatsnew/3.10.rst
@@ -491,11 +491,11 @@
             case 418:
                 return "I'm a teapot"
             case _:
-                return "Something's wrong with the Internet"
+                return "Something's wrong with the internet"
 
 If the above function is passed a ``status`` of 418, "I'm a teapot" is returned.
 If the above function is passed a ``status`` of 500, the case statement with
-``_`` will match as a wildcard, and "Something's wrong with the Internet" is
+``_`` will match as a wildcard, and "Something's wrong with the internet" is
 returned.
 Note the last block: the variable name, ``_``, acts as a *wildcard* and insures
 the subject will always match. The use of ``_`` is optional.
diff --git a/Doc/whatsnew/3.2.rst b/Doc/whatsnew/3.2.rst
index 06bee99..840cb06 100644
--- a/Doc/whatsnew/3.2.rst
+++ b/Doc/whatsnew/3.2.rst
@@ -1921,7 +1921,7 @@
 pydoc
 -----
 
-The :mod:`pydoc` module now provides a much-improved Web server interface, as
+The :mod:`pydoc` module now provides a much-improved web server interface, as
 well as a new command-line option ``-b`` to automatically open a browser window
 to display that server:
 
diff --git a/Doc/whatsnew/3.4.rst b/Doc/whatsnew/3.4.rst
index 99d0408..0405f2b 100644
--- a/Doc/whatsnew/3.4.rst
+++ b/Doc/whatsnew/3.4.rst
@@ -490,7 +490,7 @@
 :mod:`ensurepip` includes a bundled copy of ``pip``, up-to-date as of the first
 release candidate of the release of CPython with which it ships (this applies
 to both maintenance releases and feature releases).  ``ensurepip`` does not
-access the internet.  If the installation has Internet access, after
+access the internet.  If the installation has internet access, after
 ``ensurepip`` is run the bundled ``pip`` can be used to upgrade ``pip`` to a
 more recent release than the bundled one.  (Note that such an upgraded version
 of ``pip`` is considered to be a separately installed package and will not be
diff --git a/LICENSE b/LICENSE
index 473861d..55cb8d3 100644
--- a/LICENSE
+++ b/LICENSE
@@ -191,9 +191,9 @@
 Agreement, Licensee may substitute the following text (omitting the
 quotes): "Python 1.6.1 is made available subject to the terms and
 conditions in CNRI's License Agreement.  This Agreement together with
-Python 1.6.1 may be located on the Internet using the following
+Python 1.6.1 may be located on the internet using the following
 unique, persistent identifier (known as a handle): 1895.22/1013.  This
-Agreement may also be obtained from a proxy server on the Internet
+Agreement may also be obtained from a proxy server on the internet
 using the following URL: http://hdl.handle.net/1895.22/1013".
 
 3. In the event Licensee prepares a derivative work that is based on
diff --git a/Lib/asyncio/base_events.py b/Lib/asyncio/base_events.py
index f789635..f726e91 100644
--- a/Lib/asyncio/base_events.py
+++ b/Lib/asyncio/base_events.py
@@ -972,7 +972,7 @@ async def create_connection(
             happy_eyeballs_delay=None, interleave=None):
         """Connect to a TCP server.
 
-        Create a streaming transport connection to a given Internet host and
+        Create a streaming transport connection to a given internet host and
         port: socket family AF_INET or socket.AF_INET6 depending on host (or
         family if specified), socket type SOCK_STREAM. protocol_factory must be
         a callable returning a protocol instance.
diff --git a/Lib/cgitb.py b/Lib/cgitb.py
index 4f81271..17ddda3 100644
--- a/Lib/cgitb.py
+++ b/Lib/cgitb.py
@@ -181,8 +181,8 @@ def reader(lnum=[lnum]):
 
 
 <!-- The above is a description of an error in a Python program, formatted
-     for a Web browser because the 'cgitb' module was enabled.  In case you
-     are not reading this in a Web browser, here is the original traceback:
+     for a web browser because the 'cgitb' module was enabled.  In case you
+     are not reading this in a web browser, here is the original traceback:
 
 %s
 -->
diff --git a/Lib/idlelib/help.html b/Lib/idlelib/help.html
index 19041c6..2b1c2af 100644
--- a/Lib/idlelib/help.html
+++ b/Lib/idlelib/help.html
@@ -803,7 +803,7 @@
 <h3>Running without a subprocess<a class="headerlink" href="#running-without-a-subprocess" title="Permalink to this headline">¶</a></h3>
 <p>By default, IDLE executes user code in a separate subprocess via a socket,
 which uses the internal loopback interface.  This connection is not
-externally visible and no data is sent to or received from the Internet.
+externally visible and no data is sent to or received from the internet.
 If firewall software complains anyway, you can ignore it.</p>
 <p>If the attempt to make the socket connection fails, Idle will notify you.
 Such failures are sometimes transient, but if persistent, the problem
diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py
index b0d5885..2a45f53 100644
--- a/Lib/logging/handlers.py
+++ b/Lib/logging/handlers.py
@@ -1147,7 +1147,7 @@ def close(self):
 
 class HTTPHandler(logging.Handler):
     """
-    A class which sends records to a Web server, using either GET or
+    A class which sends records to a web server, using either GET or
     POST semantics.
     """
     def __init__(self, host, url, method="GET", secure=False, credentials=None,
@@ -1196,7 +1196,7 @@ def emit(self, record):
         """
         Emit a record.
 
-        Send the record to the Web server as a percent-encoded dictionary
+        Send the record to the web server as a percent-encoded dictionary
         """
         try:
             import urllib.parse
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 8eecd66..1603618 100755
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -23,7 +23,7 @@ class or function within a module or module in a package.  If the
 local machine.  Port number 0 can be used to get an arbitrary unused port.
 
 Run "pydoc -b" to start an HTTP server on an arbitrary unused port and
-open a Web browser to interactively browse documentation.  Combine with
+open a web browser to interactively browse documentation.  Combine with
 the -n and -p options to control the hostname and port used.
 
 Run "pydoc -w <name>" to write out the HTML documentation for a module
@@ -2065,7 +2065,7 @@ def intro(self):
 Welcome to Python {0}'s help utility!
 
 If this is your first time using Python, you should definitely check out
-the tutorial on the Internet at https://docs.python.org/{0}/tutorial/.
+the tutorial on the internet at https://docs.python.org/{0}/tutorial/.
 
 Enter the name of any module, keyword, or topic to get help on writing
 Python programs and using Python modules.  To quit this help utility and
@@ -2279,13 +2279,13 @@ def onerror(modname):
         warnings.filterwarnings('ignore') # ignore problems during import
         ModuleScanner().run(callback, key, onerror=onerror)
 
-# --------------------------------------- enhanced Web browser interface
+# --------------------------------------- enhanced web browser interface
 
 def _start_server(urlhandler, hostname, port):
     """Start an HTTP server thread on a specific port.
 
     Start an HTML/text server thread, so HTML or text documents can be
-    browsed dynamically and interactively with a Web browser.  Example use:
+    browsed dynamically and interactively with a web browser.  Example use:
 
         >>> import time
         >>> import pydoc
@@ -2671,7 +2671,7 @@ def get_html_page(url):
 
 
 def browse(port=0, *, open_browser=True, hostname='localhost'):
-    """Start the enhanced pydoc Web server and open a Web browser.
+    """Start the enhanced pydoc web server and open a web browser.
 
     Use port '0' to start the server on an arbitrary port.
     Set open_browser to False to suppress opening a browser.
@@ -2823,7 +2823,7 @@ class BadUsage(Exception): pass
     number 0 can be used to get an arbitrary unused port.
 
 {cmd} -b
-    Start an HTTP server on an arbitrary unused port and open a Web browser
+    Start an HTTP server on an arbitrary unused port and open a web browser
     to interactively browse documentation.  This option can be used in
     combination with -n and/or -p.
 
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index bfba5c8..7e984e8 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -168,7 +168,7 @@ def quotedata(data):
     """Quote data for email.
 
     Double leading '.', and change Unix newline '\\n', or Mac '\\r' into
-    Internet CRLF end-of-line.
+    internet CRLF end-of-line.
     """
     return re.sub(r'(?m)^\.', '..',
         re.sub(r'(?:\r\n|\n|\r(?!\n))', CRLF, data))
diff --git a/Lib/test/mime.types b/Lib/test/mime.types
index 6872443..eb39a17 100644
--- a/Lib/test/mime.types
+++ b/Lib/test/mime.types
@@ -1,11 +1,11 @@
 # This is a comment. I love comments.		    -*- indent-tabs-mode: t -*-
 
-# This file controls what Internet media types are sent to the client for
+# This file controls what internet media types are sent to the client for
 # given file extension(s).  Sending the correct media type to the client
 # is important so they know how to handle the content of the file.
 # Extra types can either be added here or by using an AddType directive
-# in your config files. For more information about Internet media types,
-# please read RFC 2045, 2046, 2047, 2048, and 2077.  The Internet media type
+# in your config files. For more information about internet media types,
+# please read RFC 2045, 2046, 2047, 2048, and 2077.  The internet media type
 # registry is at <http://www.iana.org/assignments/media-types/>.
 
 # IANA types
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index 942d1f7..4a2ed1e 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -74,8 +74,8 @@
 elif sys.platform == 'vxworks':
     LOOPBACK_TIMEOUT = 10
 
-# Timeout in seconds for network requests going to the Internet. The timeout is
-# short enough to prevent a test to wait for too long if the Internet request
+# Timeout in seconds for network requests going to the internet. The timeout is
+# short enough to prevent a test to wait for too long if the internet request
 # is blocked for whatever reason.
 #
 # Usually, a timeout using INTERNET_TIMEOUT should not mark a test as failed,
diff --git a/Lib/test/support/socket_helper.py b/Lib/test/support/socket_helper.py
index e78712b..b516773 100644
--- a/Lib/test/support/socket_helper.py
+++ b/Lib/test/support/socket_helper.py
@@ -189,7 +189,7 @@ def get_socket_conn_refused_errs():
 @contextlib.contextmanager
 def transient_internet(resource_name, *, timeout=_NOT_SET, errnos=()):
     """Return a context manager that raises ResourceDenied when various issues
-    with the Internet connection manifest themselves as exceptions."""
+    with the internet connection manifest themselves as exceptions."""
     import nntplib
     import urllib.error
     if timeout is _NOT_SET:
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py
index 0cc1fc4..5794b75 100644
--- a/Lib/test/test_logging.py
+++ b/Lib/test/test_logging.py
@@ -891,7 +891,7 @@ class ControlMixin(object):
                     single parameter - the request - in order to
                     process the request. This handler is called on the
                     server thread, effectively meaning that requests are
-                    processed serially. While not quite Web scale ;-),
+                    processed serially. While not quite web scale ;-),
                     this should be fine for testing applications.
     :param poll_interval: The polling interval in seconds.
     """
diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py
index e523634..f4a8470 100644
--- a/Lib/test/test_ssl.py
+++ b/Lib/test/test_ssl.py
@@ -65,7 +65,7 @@ def data_file(*name):
 
 # The custom key and certificate files used in test_ssl are generated
 # using Lib/test/make_ssl_certs.py.
-# Other certificates are simply fetched from the Internet servers they
+# Other certificates are simply fetched from the internet servers they
 # are meant to authenticate.
 
 CERTFILE = data_file("keycert.pem")
diff --git a/Lib/test/test_urllib2net.py b/Lib/test/test_urllib2net.py
index 4750ad9..aa41811 100644
--- a/Lib/test/test_urllib2net.py
+++ b/Lib/test/test_urllib2net.py
@@ -67,7 +67,7 @@ def __exit__(self, type_=None, value=None, traceback=None):
                 raise ResourceDenied("an optional resource is not available")
 
 # Context managers that raise ResourceDenied when various issues
-# with the Internet connection manifest themselves as exceptions.
+# with the internet connection manifest themselves as exceptions.
 # XXX deprecate these and use transient_internet() instead
 time_out = TransientResource(OSError, errno=errno.ETIMEDOUT)
 socket_peer_reset = TransientResource(OSError, errno=errno.ECONNRESET)
diff --git a/Lib/webbrowser.py b/Lib/webbrowser.py
index e980497..ec3cece 100755
--- a/Lib/webbrowser.py
+++ b/Lib/webbrowser.py
@@ -1,5 +1,5 @@
 #! /usr/bin/env python3
-"""Interfaces for launching and remotely controlling Web browsers."""
+"""Interfaces for launching and remotely controlling web browsers."""
 # Maintained by Georg Brandl.
 
 import os
diff --git a/Mac/BuildScript/resources/License.rtf b/Mac/BuildScript/resources/License.rtf
index 1dfdc1e..ca7dd04 100644
--- a/Mac/BuildScript/resources/License.rtf
+++ b/Mac/BuildScript/resources/License.rtf
@@ -106,7 +106,7 @@
 \f1\b0 \
 1. This LICENSE AGREEMENT is between the Corporation for National Research Initiatives, having an office at 1895 Preston White Drive, Reston, VA 20191 ("CNRI"), and the Individual or Organization ("Licensee") accessing and otherwise using Python 1.6.1 software in source or binary form and its associated documentation.\
 \
-2. Subject to the terms and conditions of this License Agreement, CNRI hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 1.6.1 alone or in any derivative version, provided, however, that CNRI's License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) 1995-2001 Corporation for National Research Initiatives; All Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee. Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6.1 is made available subject to the terms and conditions in CNRI's License Agreement. This Agreement together with Python 1.6.1 may be located on the Internet using the following unique, persistent identifier (known as a handle): 1895.22/1013. This Agreement may also be obtained from a proxy server on the Internet using the following URL: http://hdl.handle.net/1895.22/1013".\
+2. Subject to the terms and conditions of this License Agreement, CNRI hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python 1.6.1 alone or in any derivative version, provided, however, that CNRI's License Agreement and CNRI's notice of copyright, i.e., "Copyright (c) 1995-2001 Corporation for National Research Initiatives; All Rights Reserved" are retained in Python 1.6.1 alone or in any derivative version prepared by Licensee. Alternately, in lieu of CNRI's License Agreement, Licensee may substitute the following text (omitting the quotes): "Python 1.6.1 is made available subject to the terms and conditions in CNRI's License Agreement. This Agreement together with Python 1.6.1 may be located on the internet using the following unique, persistent identifier (known as a handle): 1895.22/1013. This Agreement may also be obtained from a proxy server on the internet using the following URL: http://hdl.handle.net/1895.22/1013".\
 \
 3. In the event Licensee prepares a derivative work that is based on or incorporates Python 1.6.1 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python 1.6.1.\
 \
@@ -161,4 +161,4 @@
 \
 \
 \
-}
\ No newline at end of file
+}
diff --git a/Misc/HISTORY b/Misc/HISTORY
index 32b2a37..2046b0a 100644
--- a/Misc/HISTORY
+++ b/Misc/HISTORY
@@ -1429,7 +1429,7 @@
   by Devin Cook.
 
 - Lax cookie parsing in http.cookies could be a security issue when combined
-  with non-standard cookie handling in some Web browsers.  Reported by
+  with non-standard cookie handling in some web browsers.  Reported by
   Sergey Bobrov.
 
 - Issue #22384: An exception in Tkinter callback no longer crashes the program
@@ -10380,7 +10380,7 @@
 
 - Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and
   an overzealous DNS service (e.g. OpenDNS) redirects to a placeholder
-  Web site.
+  web site.
 
 - Avoid failing in test_urllibnet.test_bad_address when some overzealous
   DNS service (e.g. OpenDNS) resolves a non-existent domain name.  The test
@@ -11273,7 +11273,7 @@
 
 - Issue #10549: Fix pydoc traceback when text-documenting certain classes.
 
-- Issue #2001: New HTML server with enhanced Web page features.  Patch by Ron
+- Issue #2001: New HTML server with enhanced web page features.  Patch by Ron
   Adam.
 
 - Issue #10360: In WeakSet, do not raise TypeErrors when testing for membership
@@ -21043,7 +21043,7 @@
   own when any program opens a socket.  IDLE does use sockets, talking
   on the computer's internal loopback interface.  This connection is not
   visible on any external interface and no data is sent to or received
-  from the Internet.  So, if you get such a dialog when opening IDLE,
+  from the internet.  So, if you get such a dialog when opening IDLE,
   asking whether to let pythonw.exe talk to address 127.0.0.1, say yes,
   and rest assured no communication external to your machine is taking
   place.  If you don't allow it, IDLE won't be able to start.
@@ -31454,7 +31454,7 @@
 are a command line utility as well as a Tkinter based GUI version.  In
 Tools/webchecker.  A simplified version of this program is dissected
 in my article in O'Reilly's WWW Journal, the issue on Scripting
-Languages (Vol 2, No 2); Scripting the Web with Python (pp 97-120).
+Languages (Vol 2, No 2); Scripting the web with Python (pp 97-120).
 Includes a parser for robots.txt files by Skip Montanaro.
 
 - New small tools: cvsfiles.py (prints a list of all files under CVS
@@ -32325,7 +32325,7 @@
 of that chapter.)
 
 
-Changes to the WWW and Internet tools
+Changes to the WWW and internet tools
 =====================================
 
 The "htmllib" module has been rewritten in an incompatible fashion.
@@ -32485,7 +32485,7 @@
 
 - The Library Reference has been restructured, and many new and
 existing modules are now documented, in particular the debugger and
-the profiler, as well as the persistency and the WWW/Internet support
+the profiler, as well as the persistency and the WWW/internet support
 modules.
 
 - All known bugs have been fixed.  For example the pow(2,2,3L) bug on
@@ -32720,7 +32720,7 @@
 
     - types.py defines standard names for built-in types, e.g. StringType
 
-    - urlparse.py parses URLs according to the latest Internet draft
+    - urlparse.py parses URLs according to the latest internet draft
 
     - uu.py does uuencode/uudecode (not the fastest in the world, but
     quicker than installing uuencode on a non-UNIX machine :-)
diff --git a/Misc/NEWS.d/3.5.0a1.rst b/Misc/NEWS.d/3.5.0a1.rst
index 56d0d33..a9eba80 100644
--- a/Misc/NEWS.d/3.5.0a1.rst
+++ b/Misc/NEWS.d/3.5.0a1.rst
@@ -2234,7 +2234,7 @@
 .. section: Library
 
 Lax cookie parsing in http.cookies could be a security issue when combined
-with non-standard cookie handling in some Web browsers.  Reported by Sergey
+with non-standard cookie handling in some web browsers.  Reported by Sergey
 Bobrov.
 
 ..
diff --git a/Misc/NEWS.d/next/Documentation/2021-07-26-23-48-31.bpo-44740.zMFGMV.rst b/Misc/NEWS.d/next/Documentation/2021-07-26-23-48-31.bpo-44740.zMFGMV.rst
new file mode 100644
index 0000000..c01273f
--- /dev/null
+++ b/Misc/NEWS.d/next/Documentation/2021-07-26-23-48-31.bpo-44740.zMFGMV.rst
@@ -0,0 +1,2 @@
+Replaced occurences of uppercase "Web" and "Internet" with lowercase
+versions per the 2016 revised Associated Press Style Book.
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 9233430..a5f2468 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -45,7 +45,7 @@ Module interface:
 - socket.if_nameindex() -> list of tuples (if_index, if_name)
 - socket.if_nametoindex(name) -> corresponding interface index
 - socket.if_indextoname(index) -> corresponding interface name
-- an Internet socket address is a pair (hostname, port)
+- an internet socket address is a pair (hostname, port)
   where hostname can be anything recognized by gethostbyname()
   (including the dd.dd.dd.dd notation) and port is in host byte order
 - where a hostname is returned, the dd.dd.dd.dd notation is used
diff --git a/PC/store_info.txt b/PC/store_info.txt
index 8c20412..f6a85cb 100644
--- a/PC/store_info.txt
+++ b/PC/store_info.txt
@@ -82,7 +82,7 @@
 
 Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms.
 
-The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python Web site, https://www.python.org/, and may be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation.
+The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python web site, https://www.python.org/, and may be freely distributed. The same site also contains distributions of and pointers to many free third party Python modules, programs and tools, and additional documentation.
 
 The Python interpreter is easily extended with new functions and data types implemented in C or C++ (or other languages callable from C). Python is also suitable as an extension language for customizable applications.
 
diff --git a/Python/condvar.h b/Python/condvar.h
index 8cba19b..e5df7ff 100644
--- a/Python/condvar.h
+++ b/Python/condvar.h
@@ -99,7 +99,7 @@ PyCOND_TIMEDWAIT(PyCOND_T *cond, PyMUTEX_T *mut, long long us)
    http://birrell.org/andrew/papers/ImplementingCVs.pdf
 
    Generic emulations of the pthread_cond_* API using
-   earlier Win32 functions can be found on the Web.
+   earlier Win32 functions can be found on the web.
    The following read can be give background information to these issues,
    but the implementations are all broken in some way.
    http://www.cse.wustl.edu/~schmidt/win32-cv-1.html
diff --git a/Tools/demo/rpythond.py b/Tools/demo/rpythond.py
index a18de13..4e47fb9 100755
--- a/Tools/demo/rpythond.py
+++ b/Tools/demo/rpythond.py
@@ -5,7 +5,7 @@
 Execute Python commands remotely and send output back.
 
 WARNING: This version has a gaping security hole -- it accepts requests
-from any host on the Internet!
+from any host on the internet!
 """
 
 import sys
diff --git a/Tools/pynche/README b/Tools/pynche/README
index e026159..ae8183f 100644
--- a/Tools/pynche/README
+++ b/Tools/pynche/README
@@ -27,7 +27,7 @@
     Pynche must find a text database of colors names in order to
     provide `nearest' color matching.  Pynche is distributed with an
     rgb.txt file from the X11R6.4 distribution for this reason, along
-    with other "Web related" database (see below).  You can use a
+    with other "web related" database (see below).  You can use a
     different file with the -d option.  The file xlicense.txt contains
     the license only for rgb.txt and both files are in the X/
     subdirectory.
@@ -356,7 +356,7 @@
 
     html40colors.txt -- the HTML 4.0 guaranteed color names
 
-    websafe.txt -- the 216 "Web-safe" colors that Netscape and MSIE
+    websafe.txt -- the 216 "web-safe" colors that Netscape and MSIE
     guarantee will not be dithered.  These are specified in #rrggbb
     format for both values and names