HTTP&Web Servers——Udacity

HTTP response construction:

1.status code 

2.header

3.response 

--------------------------------------------

url construction:

scheme://hostname/path

such as : http://example.net/google.com/ponies

http->scheme;example.net->hostname ; /google.com/ponies ->path

 

hostname ->DNS -> IP

port  is  a part of hostname 

 

----------------------------------------------

HTTP methods 

GET , POST 

PUT ,DELECT ,PATCH

----------------------------------------------

python 

lib : http.server 

function:

do_http-methods()->  client send you a http method (for example : GET) , the server use do_GET function to deal with the get request.

HTTPServer(server_address  ,  BaseHTTPRequestHandler) ->  create a server.

HTTPServer . serve_forever() -> run a HTTPServer Object   forever.

.read()   ;   .write()  ; decode()  ;  encode()  ; str.format () ; send_header() ; send_response() ; parse_qs()

#!/usr/bin/env python3
#
# An HTTP server that's a message board.

from http.server import HTTPServer, BaseHTTPRequestHandler
from urllib.parse import parse_qs

memory = []

form = '''
  Message Board
  

{}
  
''' class MessageHandler(BaseHTTPRequestHandler): def do_POST(self): # How long was the message? length = int(self.headers.get('Content-length', 0)) # Read and parse the message data = self.rfile.read(length).decode() message = parse_qs(data)["message"][0] # Escape HTML tags in the message so users can't break world+dog. message = message.replace("<", "<") # Store it in memory. memory.append(message) # Send a 303 back to the root page self.send_response(303) # redirect via GET self.send_header('Location', '/') self.end_headers() def do_GET(self): # First, send a 200 OK response. self.send_response(200) # Then send headers. self.send_header('Content-type', 'text/html; charset=utf-8') self.end_headers() # Send the form with the messages in it. mesg = form.format("\n".join(memory)) self.wfile.write(mesg.encode()) if __name__ == '__main__': server_address = ('', 8000) httpd = HTTPServer(server_address, MessageHandler) httpd.serve_forever()

---------------------------------

JSON  - >  dictionary 

----------------------------------

cache 

--------------------------

cookies

-----------------------------------------------------------------

web  security  - >  https ->  http/1.1  - > http/2 

-------------------------------------------------

Other   :  TCP   TLS   SSL  

 

cloud: 链接:https://pan.baidu.com/s/1snqiu4l 密码:dtnn


你可能感兴趣的:(http,web,server)