美文网首页
http协议

http协议

作者: gidle | 来源:发表于2020-08-24 10:15 被阅读0次

    一、网络协议基础内容

    tcp/ip分层管理

    应用层 ->  传输层 ->  网络层 ->  链路层

    1.应用层:http协议、dns域解析

    2.传输层:tcp或者udp (提供两台计算机之间的数据传输问题)

    3.网络层:ip (选择传输路线)

    4:链路层: 用来处理连接网络的硬件部分

    tcp/ip信息传输流

    1.通过tcp/ip协议族进行网络通信时,会通过分层顺序与对方通信

    客户端:http客户端  <->  tcp  <->  ip  <->  网络  <->  网络  <->  ip  <->  tcp  <->  http服务端  :服务端

    2.发送端在进行层与层之间传输数据时,每经过一层,必定会打上一个该层所属的首部信息。反之,接收端在层与层进行数据传输时,每·经过一层会把对应首部消除。

    tcp三次握手

    三次握手是由发送端发起的,发送数据前,发送端会给接受端发送一个确认消息,当接受端收到发送端的消息并且作出回应,发送端才开始数据传输。

    dns域解析

    发送端向dns服务发出请求,获取某个页面的ip地址,dns把地址返回给发送端,发送端拿到ip后向对应ip地址发出请求。

    http协议通信流程

    客户端:

    http协议的职责:生成针对目标web服务器的http请求报文

    tcp协议职责:为了方便通信,将http报文分割成报文段(按序号分为多个报文段)

    路由器:

    ip协议职责:搜索对方地址,一边中转一边传送

    服务端:

    tcp协议职责:从对方那里接收到报文,重组到达的报文

    http协议的职责:对web服务器的请求的内容的处理

    二、http协议

    1.http的作用

    用于客户端和服务端之间的通信,请求访问的一端称为客户端,提供资源访问的一端称为服务端。

    2.无状态协议

    http是一种不保存状态,即无状态协议。在调用过程中,对请求和响应都不做持久化处理。

    优点:更快处理大量事物,确保协议可伸缩性

    缺点:某些请求或者登陆状态需要保持状态

    3.http的请求方法

    get方法:主要用来获取资源,参数包含在url里可见,所以安全性比较差,浏览器对get方法的参数长度有限制

    post方法:主要用来获取和传输资源,参数包含在请求体中,且参数长度比get大的多,对外不可见,且相对较为安全

    put方法:向服务器提交数据,更新服务器资源

    delete:删除服务器数据

    head:获取报文首部

    4.持久化连接

    问题:在http最初的版本中,每进行一次http通信都会断开一次连接,因此当请求过多的时候,都会造成无谓的通信开销

    解决:http/1.1 提出了持久连接概念

    持久连接:持久连接的好处在于减少tcp连接的重复建立和断开所造成的额外开销,减轻了服务端的开销。另外减少开销的那部分时间,使http请求和响应能够更早的结束,这样web页面的响应速度也显著的提高了。

    5.cookie

    前面说过,Http是无状态的,通过cookie识别请求来源。

    三、http报文

    http包含请求和响应报文,通过依赖这两种报文来达到信息资源的请求和响应。

    1.请求报文和响应报文

    请求报文:

        请求行:请求方法、协议名、版本号、请求url

        请求头部

        空行

        请求体

    响应报文:

        状态行:协议吗、版本号、返回状态码

        响应头部

        空行

        响应体

    2.报文实例

    四、首部分类

    1.通用首部字段

    请求报文和响应报文都会使用

    2.请求首部字段

    3.响应首部字段

    4.实体首部字段

    五、http状态码

    状态码表示客户端请求返回的状态

    状态码第一位指定响应类别,后两类无分类

    状态码类别

    常见状态码:

    200:ok,请求成功,请求被正常处理。

    204:请求成功,但是没有资源返回

    301:永久性重定向

    302:临时性重定向

    403:服务器拒绝访问

    404:无法找到请求资源

    500:服务错误

    六、http缓存处理

    1.缓存服务器

    缓存服务器是代理服务器的一种,当代理转发从服务器返回资源时,代理资源器会返回一份资源副本。

    2.客户端缓存

    缓存也可以存在客户端浏览器中,把客户端缓存又称为临时性网络文件。

    3.缓存有效期

    与网络服务器缓存一样,当判定缓存过期后,会向服务器确认资源有效性。若浏览器判断缓存失效,浏览器会再次请求新资源。

    4.缓存相关设置

    5.浏览器首次请求和再次请求的执行流程图

    1.浏览器首次发送请求

    2.浏览器再次发送请求

    七、其他问题

    1.get和post区别

    get的请求参数包含在URL中,对外可见,所以安全性较差。post的请求参数包含在请求体中,对外不可见,相对来说较安全。

    浏览器会主动缓存get请求的相关资源,但相对于post请求,浏览器不会主动缓存,除非主动缓存。

    get请求的参数长度有限制,post没有。

    get请求在浏览器回退时是无害的,但post会重新请求。

    get请求的参数会被保存在浏览器历史记录中,post不会。

    2.tcp和udp的区别

    tcp是面向连接,udp是无连接的,即发送数据之前不需要建立连接。

    tcp提供可靠的服务,即tcp连接传输的数据,无差错、不丢失,udp尽最大努力交付,但不保证数据可靠性。

    tcp只能一对一,udp可以一对一、一对多、多对一。

    相关文章

      网友评论

          本文标题:http协议

          本文链接:https://www.haomeiwen.com/subject/gvbgjktx.html