总体流程很简单,浏览器输入127.0.0.1:8000,返回html,因为html中有css、js,浏览器会默认为test.css、test.js加上127.0.0.1来访问,因为HTTP是短链接,一旦127.0.0.1:8000完成请求应答,会立即拼接test.html中test.css、test.js进行访问。
import socket sk = socket.socket() sk.bind(("127.0.0.1",8000)) sk.listen() while 1: conn,addr = sk.accept() from_client_msg = conn.recv(1024) # print(from_client_msg.decode("utf-8").split(" ")) #以空格分开看清每部分内容 url = from_client_msg.decode("utf-8").split(" ")[1] if url == "/": #浏览器输入http://127.0.0.1:8000,服务端得到的url为"/",是因为浏览器默认在末尾补充"/" with open("test.html","rb") as f: conn.send(b"HTTP/1.1 200 OK \r\n\r\n") conn.send(f.read()) conn.close() elif url == "/test.css": with open("test.css","rb") as f: conn.send(b"HTTP/1.1 200 OK \r\n\r\n") conn.send(f.read()) conn.close() elif url == "/test.js": with open("test.js","rb") as f: conn.send(b"HTTP/1.1 200 OK \r\n\r\n") conn.send(f.read()) conn.close() sk.close()