Python47_HTTP及长短连接简介

HTTP协议简介

http:超文本传输协议,是一种网络协议,基于tcp

浏览请向服务器发送的请求格式如下(可以用网络调试工具做tcp服务器,并用浏览器进行访问查看):

GET / HTTP/1.1 #第一个/后面的东西表示浏览器请求的页面,如果仅有一个斜杠,则表明浏览器请求访问的是一个主页。除GET外,还有PUSH,POST等
Host: 127.0.0.1:8080 #服务器的ip:port
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0 #客户端浏览器的版本,被服务器端用于反爬虫
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8 #浏览器可以接收什么样的格式
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 #浏览器能够接收的语言
Accept-Encoding: gzip, deflate #浏览器可以接收的压缩格式
Connection: keep-alive #表示长链接
Upgrade-Insecure-Requests: 1

服务器给浏览器回送的数据格式示例(头)如下:

HTTP/2.0 200 OK #还可以返回 404 NOT FOUND
server: openresty
date: Wed, 10 Jul 2019 14:52:44 GMT
content-type: text/html; charset=UTF-8
vary: Accept-Encoding
set-cookie: TINGYUN_DATA=%7B%22id%22%3A%22-sf2Cni530g%23HL5wvli0FZI%22%2C%22n%22%3A%22WebAction%2FCI%2Fmdeditor%252Findex%22%2C%22tid%22%3A%22baa1f8eaceb0e8%22%2C%22q%22%3A0%2C%22a%22%3A61%7D #如果访问网站,网站的服务器就会检测浏览器请求的时候是否有这个值,如果没有,服务器就会在回应的里面有这句话。然后浏览器就会在本地将TINGYUN作为变量名,等号后面的作为数据值进行存储。然后后面只要是访问相同域名时的任何网站时,就会将该值进行提交
content-encoding: gzip
allow: GET, POST, PUT, DELETE, HEAD
X-Firefox-Spdy: h2

头是连续的,头之后为body,之间有一个空的行进行分隔

注意:在服务器返回给浏览器的状态码中,2xx的一般是成功,3xx表示重定向(比如:访问神马搜索:如果输入www.yisou.com会重定向到www.m.sm.cn),4xx表示浏览器请求的资源没有,5xx表示服务器挂了

可以用网络调试助手进行调试,调试助手当tcp服务器,浏览器对其进行访问。然后在调试助手上回复如下内容:

HTTP /1.1 200 OK

<h1>This is body</h1>

长短连接

短连接的操作步骤

建立连接(三次握手)——数据传输——关闭连接……建立连接——传输数据——关闭连接(四次挥手)

长连接的操作步骤

建立连接(三次握手)——数据传输……(保持连接)……数据传输——关闭连接(四次挥手)

个人理解:所谓长短,即连接时间的长短,如果只为了一次传输,连接的时间短,所以称为短连接;如果是为了多次数据传输,连接的时间长,所以称之为长连接

http1.0规定的是短连接,http1.1规定的是长连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值