学习目标day5-2(静态服务器-html)

学习目标

1.能够知道HTTP协议的作用

浏览器与web服务器通信的协议

2.能够知道URL的组成部分

http://www.itheima.com:80/special/pythonzly/jyqj.html
协议名 ://主机名 :端口/请求资源路径?请求参数 

3.能够使用谷歌浏览器的开发者工具查看HTTP协议的通信过程

f12--> network--> 选择某个请求资源-->查看请求和响应信息

4.能够知道HTTP请求报文的结构

GET /special/pythonzly/index.shtml HTTP/1.1 #请求行
Host: www.itheima.com #请求头
Connection: keep-alive
#空行,请求头与请求体的分隔符
account=12&pwd=34&age=20# 请求体

1. 请求行 [请求方式  请求路径  协议版本\r\n]
2. 请求头 [头名称: 头值\r\n]
3. 空行 [请求头与请求体的分割线 \r\n]
4.请求体  [只有post方式有请求体]	

5.能够知道HTTP响应报文的结构

HTTP/1.1 200 OK #响应行
Server: Tengine # 响应头
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
#空行 响应头与响应体的分隔符
#响应体: 【响应的具体内容】

1. 响应行
2. 响应头
3. 空行(响应头与响应体的分隔符)
4. 响应体

6.能够知道web服务器发送响应报文的格式

response_line = 'HTTP/1.1 200 OK\r\n'
response_headers = "Server: itheima\r\n"
response_headers += 'major: python\r\n'
response_body='welcome'

# 拼接http响应报文格式数据
response_data = response_line + response_headers + '\r\n' + response_body

# 发送http响应报文数据给浏览器客户端
new_sock.send(response_data.encode('utf-8'))

7.能够写出面向对象方式的多任务web服务器程序

class HttpServer(object):
    def startup(self):
        """开始执行的方法"""
        
    def handle_client_request(self,new_sock):
        """专门处理客户端的请求
        :param: new_sock:与客户端对接通信的socket
        """
if __name__ == '__main__':
    # 创建实例对象
    web_server = HttpServer()
    web_server.startup()

8.能够写出获取终端命令行参数动态绑定端口号的web服务器程序

# 运行命令: python3 web.py 9999
def main():
    print(sys.argv)  # ['web.py','9999']
    port = int(sys.argv[1])  # 把字符串转为整数
    # 创建实例对象
    web_server = HttpServer(port)
    web_server.startup()
    
class HttpServer(object):
    def __init__(self, port):
        server_sc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        server_sc.bind(('', port))  # 动态绑定端口

9. 能够知道html的基本结构




<html >

<head>
    
    <meta charset="UTF-8">
    
    <title>python开发title>
head>

<body>
    
   你好 fsgdsfgasdgadsg
body>
html>

10.能够知道单标签和双标签的区别

双标签  : <标签的名字>标签的名字> 
  带范围的是双标签,这种标签允许嵌套和承载内容 
  <h1>你好吗h1>
  <div> div div div>
单标签 : <标记的名字>  
 不带范围的标签是单标签 ,这种标签不包含内容
  <br><hr>

你可能感兴趣的:(学习)