织梦dede网站后台被挂黑链怎么办,北京市在建工程项目查询,oss挂载到wordpress,默认的首页文件名一般是1. 静态Web服务器的问题
目前的Web服务器#xff0c;不管用户访问什么页面#xff0c;返回的都是固定页面的数据#xff0c;接下来需要根据用户的请求返回指定页面的数据
返回指定页面数据的实现步骤:
获取用户请求资源的路径根据请求资源的路径#xff0c;读取指定文件…1. 静态Web服务器的问题
目前的Web服务器不管用户访问什么页面返回的都是固定页面的数据接下来需要根据用户的请求返回指定页面的数据
返回指定页面数据的实现步骤:
获取用户请求资源的路径根据请求资源的路径读取指定文件的数据组装指定文件数据的响应报文发送给浏览器判断请求的文件在服务端不存在组装404状态的响应报文发送给浏览器
2. 静态Web服务器-返回指定页面数据的示例代码
import socketdef main():# 创建tcp服务端套接字tcp_server_socket socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 设置端口号复用, 程序退出端口立即释放tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)# 绑定端口号tcp_server_socket.bind((, 9000))# 设置监听tcp_server_socket.listen(128)while True:# 等待接受客户端的连接请求new_socket, ip_port tcp_server_socket.accept()# 代码执行到此说明连接建立成功recv_client_data new_socket.recv(4096)if len(recv_client_data) 0:print(关闭浏览器了)new_socket.close()return# 对二进制数据进行解码recv_client_content recv_client_data.decode(utf-8)print(recv_client_content)# 根据指定字符串进行分割 最大分割次数指定2request_list recv_client_content.split( , maxsplit2)# 获取请求资源路径request_path request_list[1]print(request_path)# 判断请求的是否是根目录如果条件成立指定首页数据返回if request_path /:request_path /index.htmltry:# 动态打开指定文件with open(static request_path, rb) as file:# 读取文件数据file_data file.read()except Exception as e:# 请求资源不存在返回404数据# 响应行response_line HTTP/1.1 404 Not Found\r\n# 响应头response_header Server: PWS1.0\r\nwith open(static/error.html, rb) as file:file_data file.read()# 响应体response_body file_data# 拼接响应报文response_data (response_line response_header \r\n).encode(utf-8) response_body# 发送数据new_socket.send(response_data)else:# 响应行response_line HTTP/1.1 200 OK\r\n# 响应头response_header Server: PWS1.0\r\n# 响应体response_body file_data# 拼接响应报文response_data (response_line response_header \r\n).encode(utf-8) response_body# 发送数据new_socket.send(response_data)finally:# 关闭服务与客户端的套接字new_socket.close()if __name__ __main__:main()3. 小结 获取用户请求资源的路径 request_list client_request_conent.split(” ”, maxsplit2)request_path request_list[1]根据请求资源的路径读取请求指定文件的数据 with open(static request_path, rb) as file:file_data file.read()组装指定文件数据的响应报文发送给浏览器 response_data (response_line response_header \r\n).encode(utf-8) response_bodyconn_socket.send(response_data)判断请求的文件在服务端不存在组装404状态的响应报文发送给浏览器 try:# 打开指定文件,代码省略...except Exception as e:conn_socket.send(404响应报文数据)