Python 知识巩固(正则表达式和HTTP协议)
https://fishc.com.cn/forum.php?mod=forumdisplay&fid=243&filter=typeid&typeid=403
- 服务器发送回去的数据必须有 HTTP/1.1 200 OK 之类的
- head 和 body 一定要空一行,这样浏览器才知道哪个是数据头,哪个是主体
- 如果内容里没有 <h1>xxx</h1> 那么内容显示的字体就没那么大,类似于字号字体。
- 还记得网络安全的TCP三次握手四次挥手吗?~~~记得回去看看
- 为什么TCP连接时候三次握手就解决,关闭却要四次挥手呢?
- 因为连接的时候客户端开,服务器也必须开;
但是关闭的时候客户端关,服务器不想马上关,所以会先发送一个确认接收到客户端要关闭的信息的数据包,等什么时候要关闭了,再发送一个要关闭的数据包给客户端
- 因为连接的时候客户端开,服务器也必须开;
- 四次挥手时,一般是客户端先关闭。
- 因为先调用关闭的一方要发送一个数据包对方,对方收到了便不会再发送信息,但如果数据传送太慢或出了问题,在对方的超时等待时间没有发送到,对方便会再发送一次信息给你,而你要再发送一次数据包给对方,所以,你不能一发送就释放资源,要超时等待两倍的时间。因此同一个端口在短时间内就不能再调用,而服务器又是固定端口的,就有可能出现问题,所以一般是客户端先调用close
- 但是你可以用 server_socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
来设置使即使是服务器先close 资源也能够立即释放,保证下次运行程序时的成功