관리-도구
편집 파일: simple_server.cpython-311.opt-1.pyc
� ���wv?��G����������������������<����d�Z�ddlmZmZ�ddlZddlZddlmZ�ddl m Z �dZg�d�Zdez���Z �e ��������������d z���ej�������������������������������������������d���������z���Ze d z���ez���Z�G�d��de������������Z�G�d ��de������������Z�G�d��de������������Zd��Zeefd�Zedk����r��edde������������5�Zej�������������������������������������������Z�eded���������ded���������d�������������ddlZ�ej��������d�������������e������������������������������������ddd�������������dS�#�1�swxY�w�Y���dS�dS�)a!��BaseHTTPServer that implements the Python WSGI protocol (PEP 3333) This is both an example of how WSGI can be implemented, and a basis for running simple web applications on a local machine, such as might be done when testing or debugging an application. It has not been reviewed for security issues, however, and we strongly recommend that you use a "real" web server for production use. For example usage, see the 'if __name__=="__main__"' block at the end of the module. See also the BaseHTTPServer module docs for other API information. �����)�BaseHTTPRequestHandler� HTTPServerN)� SimpleHandler)�python_implementationz0.2)� WSGIServer�WSGIRequestHandler�demo_app�make_server�WSGIServer/�/� c�������������������������e�Zd�ZeZd��ZdS�)� ServerHandlerc������������������������ �|�j������������������������������|�j�����������������������������dd������������d���������|�j���������������������t����������j��������|��������������d�S�#�t����������j��������|��������������w�xY�w)Nr �������r���)�request_handler�log_request�status�split� bytes_sentr����close��selfs��� �</opt/alt/python311/lib64/python3.11/wsgiref/simple_server.pyr���zServerHandler.close ���sp������ &�� �,�,���!�!�#�a�(�(��+�T�_� �� �� �� ���%�%�%�%�%��M���%�%�%�%���s����?A��A-N)�__name__� __module__�__qualname__�software_version�server_softwarer����������r���r���r������s(��������������&�O�&��&��&��&��&r!���r���c��������������������.�����e�Zd�ZdZdZd��Zd��Zd��Zd��ZdS�)r���z7BaseHTTPServer that implements the Python WSGI protocolNc������������������V�����t����������j��������|��������������|�������������������������������������dS�)z.Override server_bind to store the server name.N)r����server_bind� setup_environr���s��� r���r$���zWSGIServer.server_bind0���s+��������t�$�$�$��������r!���c�����������������������i�x}|�_���������|�j��������|d<���d|d<���t����������|�j��������������������|d<���d|d<���d|d<���d|d<���d�S�) N�SERVER_NAMEzCGI/1.1�GATEWAY_INTERFACE�SERVER_PORT���REMOTE_HOST�CONTENT_LENGTH�SCRIPT_NAME)�base_environ�server_name�str�server_port)r����envs��� r���r%���zWSGIServer.setup_environ5���sa������"$�$��d��!�-��M��#,��� � ��!1�2�2��M����M�� ������M���r!���c�����������������������|�j���������S��N��applicationr���s��� r����get_appzWSGIServer.get_app?���s��������r!���c�����������������������||�_���������d�S�r4���r5���)r���r6���s��� r����set_appzWSGIServer.set_appB���s������&����r!���) r���r���r����__doc__r6���r$���r%���r7���r9���r ���r!���r���r���r���*���s[��������������A�A��K������ �� �� � �� �� �'��'��'��'��'r!���r���c��������������������*�����e�Zd�Zdez���Zd��Zd��Zd��ZdS�)r���r���c����������������������|�j���������j�������������������������������������������}|�j��������|d<���|�j��������|d<���|�j��������|d<���d|�j��������v�r|�j�����������������������������dd������������\��}}n |�j��������d}}t����������j ��������� ��������������������|d������������|d<���||d <���|������������������������������������}||�j��������d ���������k����r||d<���|�j��������d ���������|d<���|�j �����������������������������d �������������|�j �������������������������������������������|d<���n|�j ��������d ���������|d<���|�j �����������������������������d������������}|r||d<���|�j �������������������������������������������D�]l\��}}|���������������������dd�����������������������������������������������}|�����������������������������������}||v�r�Fd|z���|v�r|d|z���xx���������d|z���z ��cc<����d||d|z���<����m|S�)N�SERVER_PROTOCOL�SERVER_SOFTWARE�REQUEST_METHOD�?r���r*���z iso-8859-1� PATH_INFO�QUERY_STRINGr���r+����REMOTE_ADDRzcontent-type�CONTENT_TYPEzcontent-lengthr,����-�_�HTTP_�,)�serverr.����copy�request_version�server_version�command�pathr����urllib�parse�unquote�address_string�client_address�headers�get�get_content_type�items�replace�upper�strip)r���r2���rN����query�host�length�k�vs��� r����get_environzWSGIRequestHandler.get_environK���s�������k�&�+�+�-�-��!%�!5����!%�!4���� $������$�)��������Q�/�/�J�D�����2��D�!�<�/�/��l�C�C��K��#��N���"�"�$�$���4�&�q�)�)�)�!%�C� ��!�0��3��M���<���N�+�+�3�"&�,�"?�"?�"A�"A�C����"&�,�~�">�C�����!�!�"2�3�3���� +�$*�C� �!��L�&�&�(�(�� #�� #�D�A�q��i�i��C� � �&�&�(�(�A�A�G�G�I�I�!��C�x�x���q�y�C����G�A�I����#�a�%�'�����!"��G�A�I���� r!���c�����������������������t�����������j��������S�r4���)�sys�stderrr���s��� r���� get_stderrzWSGIRequestHandler.get_stderrp���s �������z�r!���c�����������������������|�j������������������������������d������������|�_��������t����������|�j��������������������dk����r,d|�_��������d|�_��������d|�_��������|����������������������d�������������dS�|������������������������������������sdS�t����������|�j���������|�j ��������|������������������������������������|������������������������������������d�������������}|�|_ ��������|���������������������|�j��������������������������������������������������������dS�)zHandle a single HTTP requesti��i���r*���i���NF)�multithread)�rfile�readline�raw_requestline�len�requestlinerK���rM���� send_error� parse_requestr����wfilerd���r`���r����runrI���r7���)r����handlers��� r����handlezWSGIRequestHandler.handles���s�������� $�z�2�2�5�9�9����t�#�$�$�u�,�,�!�D��#%�D� ��D�L��O�O�C� � � ��F��!�!�#�#�� ��F���J�� �D�O�O�$5�$5�t�7G�7G�7I�7I�� �� �� ���#'������D�K�'�'�)�)�*�*�*�*�*r!���N)r���r���r����__version__rL���r`���rd���rq���r ���r!���r���r���r���G���sL��������������"�[�0�N�#��#��#�J�����+��+��+��+��+r!���r���c������������������`����ddl�m}��|��������������}t����������d|��������������t����������|��������������t����������|������������������������������������������������}|D�]%\��}}t����������|dt����������|������������|���������������&�|ddg�������������|��������������������������������������������������������d������������gS�) Nr���)�StringIOzHello world!)�file�=z200 OK)zContent-Typeztext/plain; charset=utf-8zutf-8)�iort����print�sortedrW����repr�getvalue�encode)�environ�start_responsert����stdout�hr^���r_���s��� r���r ���r �������s������������� �X�Z�Z�F� �.�v�&�&�&�&� �v������w�}�}�����A���*��*���!� �a��D��G�G�&�)�)�)�)�)��N�8�J�K�L�L�L��O�O���$�$�W�-�-�.�.r!���c������������������L������||�|f|������������}|����������������������|�������������|S�)zACreate a new WSGI server listening on `host` and `port` for `app`)r9���)r\����port�app�server_class� handler_classrI���s��� r���r ���r �������s0��������\�4��,� � 6� 6�F� �N�N�3�����Mr!����__main__r*���i@��zServing HTTP onr����r���z...zhttp://localhost:8000/xyz?abc) r:����http.serverr���r���rb����urllib.parserO����wsgiref.handlersr����platformr���rr����__all__rL����versionr����sys_versionr���r���r���r���r ���r ���r����httpd�socket�getsockname�sarx���� webbrowser�open�handle_requestr ���r!���r����<module>r�������sS���� �� ��;��:��:��:��:��:��:��:�� � � � ����������*��*��*��*��*��*��*��*��*��*��*��*��� I� I� I�����,��#�#�%�%��+�c�k�.?�.?�.A�.A�!�.D�D��!�C�'�+�5��� &�� &�� &�� &�� &�M�� &�� &�� &�'��'��'��'��'���'��'��'�:?+��?+��?+��?+��?+�/��?+��?+��?+�F /�� /�� /��#-�<N����������z��� ��R��x� (� (���E� �\� %� %� '� '�� ����A����1��u�=�=�=������ ��7�8�8�8� ����������������������������������������������s����%AD�D�D