首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HTTP 缓存原理

根据是否需要重新向服务器发起请求来分类,将其分为强制缓存、协商缓存 2. 缓存规则信息包含在响应header中 3....强制缓存如果生效,不需要再和服务器发生交互;协商缓存不管是否生效,都需要与服务端发生交互 4....) 再次请求服务器时,通过此字段通知服务器上次请求时,服务器返回的资源最后修改时间 Etag (Response Headers) 服务器响应请求时,告诉浏览器当前资源在服务器的唯一标识(生成规则由服务器决定...) If-None-Match (Request Headers) 再次请求服务器时,通过此字段通知服务器客户段缓存数据的唯一标识 注: Etag  /  If-None-Match(优先级高于Last-Modified...对于协商缓存,将缓存信息中的Etag和Last-Modified通过请求发送给服务器,由服务器校验,返回304状态码时,浏览器直接使用缓存。

32000

HTTP协议原理

这个之前的文章中也提到过了 接着就是发生http请求,一个http请求的格式是这样的(红色字体是我给出的示例): ?...HTTP 请求报文封装完成后,数据来到了TCP层 TCP 层发送每一个报文的时候,都需要加上自己的地址(即源地址)和它想要去的地方(即目标地址),将这两个信息放到 IP 头里面,交给 IP 层进行传输...HTTP2.0 上方我们说的比较适应HTTP1.0/HTTP1.1,而HTTP2.0则与它们有一些区别: 采用二进制格式而非文本格式 消息头压缩 支持服务端推送 使用多路传输:HTTP1.0时一个连接一次只提交一个请求...HTTP1.1试过用流水线来解决这个问题, 但是效果并不理想(数据量较大或者速度较慢的响应, 会阻碍排在他后面的请求). 此外, 由于网络媒介和服务器不能很好的支持流水线, 导致部署起来困难重重。

1.1K20
您找到你想要的搜索结果了吗?
是的
没有找到

请求响应原理HTTP协议--服务器端基础概念

1.服务器端基础概念 1.1网站的组成 网站应用程序主要分为两大部分:客户端和服务器端。 客户端:在浏览器中运行的部分,就是用户看到并与之交互的界面程序。...服务器端:在服务器中运行的部分,负责存储数据和处理应用逻辑。 ? 1.2 Node网站服务器 能够提供网站访问服务的机器就是网站服务器,它能够接收客户端的请求,能够对请求做出响应。...,服务器电脑可以没有鼠标键盘显示器等,甚至可以只有一台主机,程序员一般通过远程控制去控制服务器。...http://www.itheima.com => http://124.165.219.100/ 虽然在地址栏中输入的是网址,但是最终还是会将域名转换为ip才能访问到指定的网站服务器。...URL的组成 传输协议://服务器IP或域名:端口/资源所在位置标识 http://www.itcast.cn/news/20181018/09152238514.html http:超文本传输协议

63010

七、《图解HTTP》- HTTP首部和HTTP协作服务器

#tjhttp 七、《图解HTTP》- HTTP首部和HTTP协作服务器#知识点请求头部字段分类比较多,本章介绍了下面的首部,内容非常多,熟悉常见的请求首部即可。...首部字段介绍非HTTP1.1 首部字段通用首部请求首部响应首部负载首部(实体首部)其他首部字段协作服务器指的是为了HTTP加速访问而架设的一些中间件介绍,内容介绍比较匮乏,个人也没有补充,简单浏览即可图片图片...,注意和服务器以及客户端之间的HTTP访问认证不同,这是代理服务器和客户端之间的认证。...,当客户端想获得 HTTP 状态管理支持时,就会在请求中包含从服务器接收到的 Cookie。...HTTP协作服务器7.1 单台虚拟机多域名HTTP1.1支持服务器搭建多个站点,提供WEB托管服务, 而针对域名和IP的映射以及查找工作涉及到DNS,域名需要通过DNS解析之后才能进行访问,当请求发送到服务器的时候使用的已经是

1.7K10

原生HTTP服务器

原生HTTP服务器 学习过Nodejs的朋友肯定对下面这段代码非常熟悉: const http = require('http'); let server = http.createServer((req...}) server.listen(3000) 就这样简单几行代码,就搭建了一个简单的服务器服务器以回调函数的形式处理HTTP请求。...上面这段代码还有一种更加清晰的等价形式,代码如下: let server = new http.Server(); server.on("request", function(req, res){ //...HttpServer继承与net.Server,它使用http_parser对连接的socket对象进行解析,当解析完成http header之后,会触发request事件,body数据继续保存在流中,...req是http.IncomingMessage实例(同时实现了Readable Stream接口),详情请参看文档 res是http.ServerResponse实例(同时实现了Writable Stream

2.8K60

HTTP原理与通信流程

Http协议的不足 不验证身份,导致身份可能被伪装。...HTTP是不会对请求的双方进行身份验证的,服务器不会校验客户端的身份,谁都可以向服务器发送请求,任何人都的请求都会进行响应; 客户端也不会验证响应的数据是否是由自己请求的目标服务器所发出。...数字证书(解决身份伪装问题) HTTP不会对通信的双方进行进行身份的验证所以身份有可能被伪装造成安全问题,所以为了解决这个问题所以产生了数字证书,数字证书的使用流程大概如下: 1、服务器首先向一个大家都信任的第三方机构申请一个身份证书...2、客户端向服务器建立通信之前首先向服务器请求获得服务器的证书。 3、服务器收到请求后把数字证书发送给客户端。...2、对摘要信息进行签名 对摘要进行签名的目的主要是对确认数据发送人的身份,签名技术是使用非对称加密的原理, 非对称加密是使用一个密钥对(一个公钥,一个私钥),公钥加密只能由私钥解密,私钥加密只能由公钥解密

89800

HTTP基本原理

在本节我们会详细了解 HTTP 的基本原理,了解在浏览器中敲入一个 URL 到获取网页内容发生了一个怎样的过程,了解了这些内容,有助于去进一步了解爬虫的基本原理。 1....HTTP请求过程 我们在浏览器中输入一个 URL,回车之后便会在浏览器中观察到页面内容,实际上这个过程是浏览器向网站所在的服务器发送了一个 Request,即请求,网站服务器接收到这个 Request...PUT 从客户端向服务器传送的数据取代指定的文档的内容。 DELETE 请求服务器删除指定的页面。 CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。...505 HTTP 版本不支持 服务器不支持请求中所用的 HTTP 协议版本。...结语 本节我们了解了 HTTP 的基本原理,通过如上描述,我们应该对访问网页背后的请求和响应过程有了大体的认识,本节涉及到的知识点需要好好掌握,在后面分析网页请求的时候会经常用到。

1.2K81

HTTP协议原理及实践

只有一个命令GET 没有 HEADER等描述数据的信息 服务器发送完毕,就关闭TCP连接 0x2 HTTP/1.0 增加了很多命令 增加 status code和 header 多字符集支持...、多部分发送、权限、缓存等 0x3 HTTP/1.1 持久连接 pipeline 增加host和其他一些命令 0x4 HTTP2 HTTP协议原理及实践 HTTP请求返回的完整过程 ?...只有一个命令GET 没有 HEADER等描述数据的信息 服务器发送完毕,就关闭TCP连接 0x2 HTTP/1.0 增加了很多命令 增加 status code和 header 多字符集支持...0x1、HTTP方法 用来定义对于资源的操作 常用有GET、POST等 从定义上讲有各自的语义 0x2、HTTP CODE 定义服务器对请求的处理结果 各个区间的CODE有各自的语义 好的...0x2 服务器对Cache-Control的配置: ? 0x3 浏览器对于Cache-Control的响应 ? 三、缓存验证 0x1 缓存运行流程图 ?

69330

Http原理】请问 HTTP 是怎么进行缓存的?

HTTP 缓存是一块重要的内容,这是作为一个前端工程师必须要掌握的优化技能,也能让自己明白自己的工作,此次主要分了几个点进行总结 缓存策略 缓存首部 缓存类型 缓存计算时间 缓存资源类型 设置缓存 浏览器缓存策略...浏览器对于请求资源,拥有一系列成熟的 缓存策略 1、存储策略 确定 HTTP 响应内容是否可以被客户端缓存,可以被哪些客户端缓存 相关首部 设置 Cache-Control:no-cache Pragma...缓存 private 只被客户端缓存,代理服务器不缓存 no-cache 防止从缓存中返回过期的资源,缓存会向源服务器进行有效确认后处理资源其实不是不让你缓存到本地,而是让你每次请求都不会马上本地缓存获取...2.Pragma http1.0 字段,现在为了向后兼容,也是指定缓存机制 Pragma:no-cache 3.Expires http1.0 字段,为了向后兼容,指定 缓存时间 Expires:...,填入这次请求的 If-Modified-Since 2、服务器收到请求,拿 If-Modified-Since 和 服务器资源的 Last-Modified 比较,如果相同,命中协商缓存,返回304

51620

HTTP状态保持的原理

a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookie b)浏览器接收到cookie之后会自动保存 c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookie...d)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录   Http是无状态的,就是连接时数据互通,关闭后就是永久性失忆,为啥是无状态的呢?...因为浏览器和服务器之间用的是socket通信的啊,一旦关闭浏览器,四次挥手之后就销毁所有交互信息(谈谈tcp三次握手,四次挥手)那么让浏览器跟服务器之间保持状态的方法是什么呢,cookie和session...seesion依赖cookie存在,但它保存在服务器上,比cookie更安全。

54220

HTTP详解(1)-工作原理

HTTP简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。...HTTP请求响应模型 HTTP由请求和响应构成,是一个标准的客户端服务器模型(B/S)。HTTP协议永远都是客户端发起请求,服务器回送响应。...HTTPS实现原理 HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP...https通信的优点: 1)客户端产生的密钥只有客户端和服务器端能得到; 2)加密的数据只有客户端和服务器端才能得到明文; 3)客户端到服务端的通信是安全的 7.3、非对称加密算法RSA的加密解密原理...Cookie会被附在每次http请求头中传递给服务器,因此还会受到服务器请求头长度的影响。 4.

56710

http认证原理和https

Http定义了两个官方认证:基本认证和摘要认证,两者遵循相同的流程: 1 客户端发起GET请求 2 服务器响应401 Unauthorized,WWW-Authenticate指定认证算法,realm指定安全域...,若没有证书则安全连接失败; HTTPS 将http同一组基于证书的加密技术组合一起,SSL介于http和tcp之间,负责http报文的加密和解密;  若URL为https,客户端打开一条到服务器443...⑦服务器和客户端用相同的主密码,即对称密钥用于SSL 协议的安全数据通讯的加解密通讯 https隧道 建立连接时客户端采用服务器的公开密钥对发送数据加密,代理就无法读取http首部,也就不知道将请求转向何处...; https ssl隧道协议允许客户端先告知代理欲连接的服务器和端口,即通过connect方法明文发送端点信息,代理建立同服务器的tcp连接,客户端直接采用此隧道同服务器通信; 隧道:通过http连接发送非...http流量

52820

HTTP协议原理及实践

只有一个命令GET 没有 HEADER等描述数据的信息 服务器发送完毕,就关闭TCP连接 0x2 HTTP/1.0 增加了很多命令 增加 status code和 header 多字符集支持...、多部分发送、权限、缓存等 0x3 HTTP/1.1 持久连接 pipeline 增加host和其他一些命令 0x4 HTTP2 HTTP协议原理及实践 HTTP请求返回的完整过程 ?...只有一个命令GET 没有 HEADER等描述数据的信息 服务器发送完毕,就关闭TCP连接 0x2 HTTP/1.0 增加了很多命令 增加 status code和 header 多字符集支持...0x1、HTTP方法 用来定义对于资源的操作 常用有GET、POST等 从定义上讲有各自的语义 0x2、HTTP CODE 定义服务器对请求的处理结果 各个区间的CODE有各自的语义 好的...六、Redirect 当服务器找不到资源的时候去跳转到一个新的页面。 302跳转是可控的,301跳转不可控收到用户缓存影响。

38030

应用层HTTP原理(3) —— HTTP Server

根据本专题的上一篇文章所说提到的HTTP响应和HTTP请求的格式(HTTP请求和响应格式文章链接)我们可以书写简单的HTTP Server程序,让服务器上的返回给客户端的返回结果返回至网站中 简单版本...服务器(最简单的) * * 底层要基于TCP来实现,要按照TCP的基本格式来先进行开发 */ public class HTTPServerV1 { private ServerSocket...ServerSocket(port); } public void start() throws IOException { System.out.println("服务器启动...serverV1 = new HTTPServerV1(9090); serverV1.start(); } } 运行结果: 浏览器(客户端)中返回结果是: 服务器显示结果是...ServerSocket(port); } public void start() throws IOException { System.out.println("服务器启动

55010

肢解 HTTP 服务器构建

最简单的 http 服务器 // server.js var http = require("http"); http.createServer(function(request, response...肢解代码 var http = require("http") 请求(require)Node.js自带的 http 模块,并且把它赋值给 http 变量 createServer listen 方法...-数值参数指定该 HTTP 服务器监听的端口号 createServer 的参数 基于事件驱动的回调 无论何时我们的服务器收到一个请求,这个函数就会被调用 请求处理 onRequest() 函数被触发的时候...,有两个参数对象 request response // 发送一个HTTP状态200和HTTP头的内容类型 response.writeHead(200, {"Content-Type": "text...模块封装 这一步我们把server.js变成一个真正的Node.js模块 函数封装 将我们的脚本封装到一个函数里面,然后导出该封装函数 var http = require("http");

1.2K10
领券