计算机网络总结(一)——HTTP协议

HTTP的特性

HTTP构建于TCP/IP协议之上,默认端口号是80

HTTP是无连接无状态的

HTTP报文

1、请求报文

HTTP 协议是一种以ASCII码传输,建立在TCP/IP协议之上的应用层规范。
规范把 HTTP 请求分为三个部分:状态行、请求头、消息主体。

HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GETPOSTPUTDELETE

URL全称是资源描述符

我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GETPOSTPUTDELETE就对应着对这个资源的查,增,改,删4个操作。

GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

1、GET 一般用于获取/查询资源信息,而且应该是安全和幂等的

  • 安全意味着该操作用于获取数据,且不会修改数据,意味着不会产生副作用
  • 幂等意味着对同一URL的多个请求应该返回同等结果

2、 POST 一般用于更新资源信息,表示可能修改服务器上的资源的请求

2、响应报文

HTTP 响应与 HTTP 请求相似,HTTP响应也由3个部分构成,分别是:

  • 状态行
  • 响应头(Response Header)
  • 响应正文

状态行由协议版本、数字形式的状态代码、及相应的状态描述,各元素之间以空格分隔

3、条件 GET

HTTP 条件 GET 是 HTTP 协议为了减少不必要的带宽浪费,提出的一种方案。

1、 HTTP 条件 GET 使用的时机?

客户端之前已经访问过某网站,并打算再次访问该网站。

2、 HTTP 条件 GET 使用的方法?

客户端向服务器发送一个包询问是否在上一次访问网站的时间后是否更改了页面,如果服务器没有更新,显然不需要把整个网页传给客户端,客户端只要使用本地缓存即可,如果服务器对照客户端给出的时间已经更新了客户端请求的网页,则发送这个更新了的网页给用户。

持久连接

HTTP持久连接(HTTP persistent connection,也称作HTTP keep-alive)
是使用同一个TCP连接来发送和接收多个HTTP请求/应答,而不是为每一个新的请求/应答打开新的连接的方法。

我们知道通常的HTTP协议都采用常规的“请求——应答”模式,对于一般的请求,其对于每一个用户并没有不同,也就是说并没有连接状态。

但当使用持久连接模式时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。

优势:

  • 较少的CPU和内存的使用(由于同时打开的连接的减少了)
  • 允许请求和应答的HTTP管线化
  • 降低拥塞控制 (TCP连接减少了)
  • 减少了后续请求的延迟(无需再进行握手)
  • 报告错误无需关闭TCP连接

劣势:

  • 对于现在的广泛普及的宽带连接来说,Keep-Alive也许并不像以前一样有用。
  • web服务器会保持连接若干秒(Apache中默认15秒),这与提高的性能相比也许会影响性能。
  • 对于单个文件被不断请求的服务(例如图片存放网站),Keep-Alive可能会极大的影响性能,因为它在文件被请求之后还保持了不必要的连接很长时间。

HTTP Pipelining(HTTP 管线化)

默认情况下 HTTP 协议中每个传输层连接只能承载一个 HTTP 请求和响应,浏览器会在收到上一个请求的响应之后,再发送下一个请求。

在使用持久连接的情况下,某个连接上消息的传递类似于请求1 -> 响应1 -> 请求2 -> 响应2 -> 请求3 -> 响应3。

HTTP Pipelining(管线化)是将多个 HTTP 请求整批提交的技术,在传送过程中不需等待服务端的回应。

使用 HTTP Pipelining 技术之后,某个连接上的消息变成了类似这样请求1 -> 请求2 -> 请求3 -> 响应1 -> 响应2 -> 响应3。

参考

浅谈HTTP中Get与Post的区别

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值