一、通过http最终实现一个效果
用我们自己电脑上的浏览器去访问我们自己写的python程序,这个程序就可以满足浏览器的需求,你可以从浏览器里面看到自己写出来的网页。所谓的协议就是一种规定。
二、http协议
正常情况下www.xxx是域名,将来通过相应的协议会变成相应的IP地址,浏览器向服务器发送的请求,浏览器给予相应的回应;
头和内容之间以一个空行进行区别。
简单web服务器实现
import socket
def service_client(new_socket):
"""为这个客户端返回数据"""
#1.接收浏览器发送过来的请求,即HTTP发送来的请求
#GET /HTTP/2.0
#...
request=new_socket.recv(1024)#一般来说应该空间是够了
print(request)
#2.返回HTTP格式的数据给浏览器
#2.1准备发送给浏览器的数据--head就是HTML那些
response="http/2.0 200 OK\r\n"#浏览器不能解析换行符/n,必须使用/r/n的方式
response+="\r\n"#不可或缺的换行符,代表着body即将到来
#2.2准备一些--body部分内容,准备给浏览器送去
#response+="<h1>xixizi</h1>"
response+="xixizi"
new_socket.send(response.encode("utf-8"))
#关闭套接字
new_socket.close()
def main():
"用来完成整体的控制"
#1.创建套接字
tcp_server_socket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#2.绑定
tcp_server_socket.bind(("",65534))
#3.变为监听套接字
tcp_server_socket.listen(128)
while True:
#4.等待新客户端的链接
new_socket,client_addr=tcp_server_socket.accept()
#5.为这个客户端服务
service_client(new_socket)
#关闭监听套接字
tcp_server_socket.close()
if __name__=="__main__":
main()
总结
用python创造一个服务器,这样通过套接字,绑定,监听,等待,回传数据,关闭服务,关闭监听,这样一整套流程达成http协议的实现,实现远程客户端访问服务端的效果也就是所谓的上网效果。
协议说白了就是规定,通过最基础的套接字代码实现。
一个成功的程序需要经过一遍遍的测试调整改正才能成为最终的样子
以上是本人个人心得总结,如有不对,望批评指正