Http协议学习笔记

Http(超文本传输协议)是Web服务器和客户端之间传输信息所用的协议,它运行在Tcp上。


  在早期的Http1.0中,Tcp连接建立之后浏览器只发送一个请求,之后一个响应消息被发回来,在然后TCP连接就被释放了。但那是Web页面只包含Html文本,因此这样设计也够用,但后来Web页面发展成有大量图片以及其他精美的东西,这样的设计就导致了效率低下。


为解决Http1.0效率低的问题,Http1.1诞生了,Http1.1支持持续连接(在一个Tcp连接中发送多条请求),也叫连接重用,还支持发送流水线请求(在没收到回应也可以发下一条请求)。Http1.1虽然解决了效率问题,但是带来一个新的问题——什么时候关闭连接?实际上客户机和服务器通常将持续连接保持打开状态,直到他们已经闲置了一小段时间(如60s),或者在打开了大量的连接需要关闭一些。


Http1.1通过持续连接提高效率,在持续连接提出之前,浏览器广泛使用并行连接的方式来提高性能。做法就是同时打开多个TCP连接,但它跟Http1.0的顺序连接有着同样的缺陷,而且对于服务器而言,同时运行多个Tcp会导致,这些并行连接之间互相竞争,造成丢包率的上升。所以持续连接更加优越。


Http常用方法简介:

GET:请求服务器发送页面。

POST:与GET类似,它携带一个URL,但不是简单的检索页面,而是提交表单内容,并返回一个指出结果的页面。

HEAD:请求消息头,不需要真正的页面。可以用于收集建索引所需要的信息或简单的测试一下URL的有效性。

PUT:存储一个web页面。

DELETE:删除一个WEB页面。

常见问题:GET和POST有什么区别?

答:Get请求把表单的数据显式地放在URI中,并且对长度和数据值编码有所限制.Post请求把表单数据放在HTTP请求体中,并且没有长度限制,还有就是Post比Get的安全性要高——比如在提交密码之类的信息若用Get就直接显示在url上了。


Http响应状态码:

代码         含义            例子

1**     信息             100=服务器同意处理客户请求

2**          成功              200=请求成功;204=没有内容

3**          重定向          301=移动页面;304=缓存的页面仍然有效

4**          客户端错误   403=禁止页面;404=页面没找到

5**          服务器错误   500=服务器内部错误;503=稍后再试


Http实现长连接?

在头部中加入 --Connection:keep-alive ,在HTTp协议请求和响应中加入这条就能维持长连接。无论客户端浏览器 (Internet Explorer) 还是 Web 服务器具有较低的 KeepAlive 值,它都将是限制因素。例如,如果客户端的超时值是两分钟,而 Web 服务器的超时值是一分钟,则最大超时值是一分钟。客户端或服务器都可以是限制因素。


Http请求报文结构:




Http响应报文结构:




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值