应用层-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。,该状态行告诉缓存器使用已经缓存过得副本即可。