应用层-day02

web与HTTP

web的应用层协议时超文本传输协议(HyperText Transfer Protocol HTTP)

HTTP是由两个程序实现的:一个客户端程序和一个服务器程序。

HTTP定义了web客户向web服务器请求web页面的方式,以及服务器向客户发送web页面的方式。

Web浏览器是实现了HTTP的客户端,Web服务器是实现了HTTP的服务器端(如Tomcat等)

HTTP协议是一个无状态的协议,这里指:服务端并不会保存客户端的信息。

非持续连接:每个请求响应对是经过一个单独的TCP连接发送。

持续连接:每个请求响应对是经过同一个TCP连接发送的。

明显的,持续连接的响应总时长会更短。而且也是HTTP采用的默认形式。

报文格式:

这个就讲了些请求头,响应头,什么的一些信息,价值不大。

cookie:用户与服务器的交互。

允许站点对用户进行跟踪。

cookie有四个组件:1.在HTTP响应报文中的一个cookie首部行。2.在HTTP请求报文中的一个cookie首部行。3.在用户端系统中保留有一个cookie文件,并由用户浏览器管理。4.位于web站点的一个后端数据库。

常用于因特网购物活动等类似的场景,为用户提供身份表示,以在没有状态的HTTP中让服务端知道用户的每一步操作。

Web缓存:

web缓存器(web cache)也叫代理服务器(proxy server)

web 缓存器有自己的磁盘存储空间,可以存储最近请求过的对象的副本。

浏览器根据域名访问时的步骤如下:1.先向 web 缓存器发送 TCP 链接,查看是否有访问域名的副本。

                2.如果有的话,就将域名的副本用 HTTP 响应报文 返回。

                3.如果没有,就去改域名的原地址处建立 TCP 链接,同时 web 缓存器也会在该 链接上发送 HTTP 请求,以将该获取该域名的 HTTP请求副本。

                4.web缓存器接收到对象后,会将对象存储在本地副本中。

值得注意的是:web 缓存器既是客户端,又是服务器。

使用 web 缓存器的原因:1.减少客户请求的响应时间、2.减少整个因特网的web流量,从而改善所有应用的性能。

web 缓存器的存在促成了一种叫内容分发网络的概念(content Distribution Network CDN)

条件GET方法

解决缓存是否是陈旧对象的机制。

构成条件:1.请求报文使用GET方法、2.请求报文包含一个“If-Modified-Since”的首部行。

缓存器会发送带"If-Modified-Since"的日期信息,与服务器返回的Last-Modified进行比对,如果两者一致,服务器会返回一个响应报文,且该响应报文包含状态行:304 Not Modified。,该状态行告诉缓存器使用已经缓存过得副本即可。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 异常:This application has no explicit mapping for /error, so you are seeing this as a fallback.

    出现这个异常说明了跳转页面的url无对应的值. 原因1: Application启动类的位置不对.要将Application类放在最外侧,即包含所有子包  原因...

    用户1134788
  • lombok插件

    IDE: IntelliJ IDEA  首先在设置的插件栏中安装lombok,然后使用如下的pom依赖: <dependency>    <groupId>or...

    用户1134788
  • 第四章:数据检索

    表名:products 字段:product_id、product_name、product_price、vend_id(供应商) 1.检索单个列: SELEC...

    用户1134788
  • 最强 AWS 的十条军规,首席技术官总结过去十年的经验

    AWS(Amazon Web Service) 开始于 2006 年 3 月 14 日 Amazon S3 的发布,距今已有十年时间。回首过去十年,我们在构建和...

    芋道源码
  • AWS CTO对过去十年的经验总结 – 十条军规

    AWS(Amazon Web Service) 开始于 2006 年 3 月 14 日 Amazon S3 的发布,距今已有十年时间。回首过去十年,我们在构建和...

    用户1516716
  • 手把手教你用Python进行SSH暴力破解

    暴力破解属于密码破解的一种,也是最常见的破解方法之一,通过不断的尝试来达到破解的目的,所以暴力破解的本质就是一种枚举。

    Python进阶者
  • JDK1.8新特性(三):Lambda表达式,让你爱不释手

    Lambda表达式是一种匿名函数,基于数学中的λ演算得名,简单地说,它是没有声明的方法,即:没有名称,但它有参数列表、方法主体、返回类型,可能还有可以抛出的异常...

    xcbeyond
  • 浅谈云安全和用户威胁

    最新的云安全工具体现了主要提供商为解决用户问题而采取的各种方法,并且保护客户不受自身的影响。 亚马逊,谷歌和微软公司都推出了强化他们对公共云安全的不同观点的功能...

    BestSDK
  • Android Wi-Fi扫描机制(Android P)

    1、 亮屏情况下,在Wifi settings界面,固定扫描,时间间隔为10s。 2、 亮屏情况下,非Wifi settings界面,二进制指数退避扫描,退避...

    用户7557625
  • python3--函数的有用信息,带参数的装饰器,多个装饰器装饰同一个函数

        我们说,任何一个程序,不可能在设计之初就已经想好了所有的功能并且未来不做任何更新和修改,所以我们必须允许代码扩展,添加新功能

    py3study

扫码关注云+社区

领取腾讯云代金券