我们都知道应用程序和网站的性能是他们成功的关键因素。但是,使您的应用程序或网站表现更好的过程并不总是很清楚。...如果客户端请求缓存但是由缓存控制头定义的过期的内容,则 Nginx将 If-Modified-Since 字段包含在 GET 请求的标头中将它发送到源服务器。...HIT - 响应直接来自有效的缓存 Nginx 如何确定是否要缓存响应 默认情况下,Nginx 尊重 Cache-Control 源服务器的标头。...Nginx 如何处理 Pragma 标头 在 Pragma:no-cache 报头由客户加入到绕过所有中间缓存,直接进入到源服务器的请求的内容。...这些头具有比较低优先级, proxy_cache_use_stale 指令如上所述。 Nginx 是否支持 Vary 标头 Nginx 1.7.7 以及更高版本中是支持 Vary 标头的 。
概述本节提供 CORS 的概述以及如何在 IRIS REST 服务中启用 CORS 的概述。CORS 简介跨域资源共享 (CORS) 允许在另一个域中运行的脚本访问服务。...恶意脚本可能允许用户使用授予用户的权限访问另一个域中的信息,但随后在用户不知道的情况下,将机密信息用于其他用途。为了避免这种安全问题,浏览器一般不允许这种跨域调用。...要定义此方法,必须熟悉 CORS 协议的细节(此处不讨论)。还需要知道如何检查请求并设置响应标头。...为此,检查默认使用的方法是有用的,即 %CSP.REST 的 HandleDefaultCorsRequest() 方法。本节说明此方法如何处理源、凭据、标头和请求方法并提出变体建议。...以下代码获取源并使用它来设置响应标头。一种可能的变体是根据允许列表测试来源。然后域被允许,设置响应头。如果不是,请将响应标头设置为空字符串。
物理拓扑 :物理层指定如何在网络中布置不同的设备/节点,即总线、星形或网状拓扑。 传输方式 :物理层还定义了数据如何在两个连接的设备之间流动。各种可能的传输模式是单工、半双工和全双工。 1....注意 :发送方需要知道与接收方应用程序关联的端口号。 通常,此目标端口号是默认配置的或手动配置的。...在接收方一侧 :传输层从其标头读取端口号,并将收到的数据转发到相应的应用程序。它还执行分段数据的排序和重组。 传输层的功能 分段和重组 :此层接受来自(会话)层的消息,并将消息分解为更小的单元。...生成的每个段都有一个与之关联的标头。目标站的传输层重新组合消息。 服务点寻址 :为了将消息传递到正确的进程,传输层标头包括一种称为服务点地址或端口地址的地址类型。...应用层的功能是 网络虚拟终端 FTAM - 文件传输访问和管理 邮件服务 目录服务 OSI模型充当参考模型,由于其发明较晚,因此未在Internet上实现。当前使用的模型是 TCP/IP 模型。
FastCGI缓存配置 是的,你没看错,FastCGI 也有缓存系统,但它走的是文件缓存。通过之前的学习,我们知道 Nginx 对静态文件的优化还是相当强悍的,因此,文件缓存的效率并不低。...,现在你只要知道第一个参数是指定缓存文件存放的路径就好了。...“Cache-Control”标头字段的“stale-if-error”扩展允许在发生错误时使用过时的缓存响应。...如果头部不包含“X-Accel-Expires”字段,可以在头部字段“Expires”或“Cache-Control”中设置缓存参数。 如果标头包含“Set-Cookie”字段,则不会缓存此类响应。...如果标头包含具有特殊值“*”的“Vary”字段,则不会缓存此类响应(1.7.7)。如果标头包含具有另一个值的“Vary”字段,则将考虑相应的请求标头字段(1.7.7)缓存此类响应。
一个常用的变通办法是建立一个合并了订单表和信用证表的游标,添加一个字段“Record type”来指示某条记录是来自哪个表的数据。...报表的细节带区中同时包含着来自两种记录类型中的全部字段,在那些字段上还要做一个 Print When 表达式以使得为每种类型的记录仅打印属于它的字段。做出来的是一个非常不便于维护的报表!...幸运的是,VFP 9 通过一个新的功能很好的解决了这个问题:多细节带区。 记录处理 在探讨多细节带区之前,让我们先讨论一下在一个报表中,VFP 是如何在记录们中间移动的。...示例1:多个子表 第一个示例 EmployeesMD.FRX 使用来自 VFP 自带的 Northwind 示例数据库(在 VFP 主目录下的 Samples\Northwind 子目录中)中的 Employees...和 Orders 定义为 Employees 的子表 这个报表有一个定义为 Employees.EmployeeID 的组表达式 ,这个来自 Employees 表的字段将出现在组标头带区中。
和Accept-Encoding标头); (3)Connection标头要求服务器保持此TCP连接开放以便接下来的请求; (4)请求中还包括针对该域的Cookie,Cookie是键值对,在不同页面请求之间跟踪网站的状态...五、浏览器遵循重定向 现在,浏览器知道“ http://www.facebook.com/”是正确的URL,因此它发出另一个GET请求: 标头含义同第一次请求!...七、服务器发回HTML响应 这是服务器生成并发回的响应: image.png 该响应内容告诉浏览器: (1)响应体用gzip算法压缩,解压缩后即可看到所需的HTML; (2)Cache-Control标头指定是否以及如何缓存页面...(浏览器通过各个标头来决定如何解释响应,但也会考虑其他因素,例如URL的扩展); (4)Expires标头指定到期时间。...浏览器知道将特定文件缓存多长时间,因为返回该文件的响应包含Expires标头,此外每个响应还可能包含ETag标头,其作用类似于版本号,如果浏览器看到已具有该文件版本的ETag,它可以立即停止传输。
但不幸的是,一旦攻击者无法让受害者在实际的 XSS 攻击中编辑他/她自己的 HTTP 标头,那么只有在攻击者有效负载以某种方式存储时才能利用这些场景。...我们可能想到的第一种情况是典型的情况:我们可以控制的 HTTP 标头中的一些信息存储在数据库中,稍后在同一页面、应用程序的其他任何地方甚至是另一个不可访问的系统中检索攻击者(盲 XSS)。...\n”; 正如我们在下面看到的,在带有 -i 标志的命令行中使用 curl,它会向我们显示响应的 HTTP 标头以及包含我们的请求标头的 JSON。...由于我们在这篇博客中使用的 WAF 提供的最后一个标头“x-sucuri-cache”,我们需要在 URL 中添加一些内容以避免缓存,因为该标头的值是“HIT”,这意味着它即将到来来自 WAF 的缓存。...但仅对我们而言,因为我们通过终端发送该标头。它不会出现在浏览器、其他人甚至我们自己的请求中。 发出了另一个请求(在“日期”标头检查时间),但似乎没有什么区别。
写这篇文章是为了消除我在该主题上的知识欠缺,以便成为一名更好的程序员。我希望它也能帮助您变得更好。 什么是共享库 库是一个包含编译后的代码和数据的文件。...一般来说,库非常有用,因为它们可以缩短编译时间(在编译应用程序时不必编译依赖关系的所有源代码)和模块化开发过程。 静态库链接到已编译的可执行文件(或另一个库)中。编译后,新组件将包含静态库的内容。...总之,ELF文件包含: ELF Header 文件数据,可能包含: 程序header表(段头列表) 段头表(列表章节标题) 以上两个标题指向的数据 ELF标头指定程序标头表中段的大小和数量,以及节标头表中段的大小和数量...它有9个程序标头(意味着有9个segment)和30个节标头(即section)。.../main 它可以工作,但不是很轻便。我们不想每次运行程序时都指定lib目录。更好的方法是将依赖项放入文件中, 这就需要设置rpath和runpath。
Content-Encoding Content-Encoding 实体标头用于压缩媒体类型,它让客户端知道如何进行解码操作,从而使客户端获得 Content-Type 标头引用的 MIME 类型。...staging site(访问登陆站点) 或者类似的,这样用户就可以知道他们要访问哪个区域。...如果缓存的响应包含 Cache-control:must-revalidate标头,则在正常浏览下也会触发该事件。另一个因素是 高级 -> 缓存首选项 面板中的缓存验证首选项。...同源策略是一种很重要的安全策略,它限制了从一个来源加载的文档或脚本如何与另一个来源的资源进行交互。它有助于隔离潜在的恶意文档,减少可能的攻击媒介。...现在我带你认识了两遍不同的源,现在你应该知道如何区分两个 URL 是否属于同一来源了吧! 好,你现在知道了什么是跨域问题,现在我要问你,哪些请求会产生跨域请求呢?
咱们缺少Access-Control-Allow-Origin标头。 但是,为什么我们需要它,它有什么用呢? 同源策略 我们在 JS 中得不到响应结果的原因是同源策略。...该策略的目的是确保一个网站不能读取对另一个网站的请求的结果,并由浏览器强制执行。...只有得到肯定答复,浏览器才会发出正式的XMLHttpRequest请求,否则就报错。 前面的例子是一个的简单请求。简单的请求是带有一些允许的标头和标志头值的GET或POST请求。...OPTIONS,表示这个请求是用来询问的,头信息里面,关键字段是Origin,表示请求来自哪个源。...原因是当请求来自另一个来源时,来自good.com的cookie将不会被发送,在本例中为evil.com。
另一个也是响应有关的,主要是响应头相关的一些配置。 今天学习的内容都是可以设置在 http、server、location 中的,有特殊情况的我会单独说。...这个配置项是创建几个缓冲区用的,比如设置成 8 4k ,表示的就是 8*4=32k 的缓冲区,而上面的 fastcgi_buffer_size 是第一个头缓冲区的大小,不包含在这边,因此,整个缓冲区的大小就是...是类似的,在指定目录下最多可以使用三级子目录层次结构。...,它的上级目录的权限必须是 755 ,所有 Nginx 下面的文件夹目录都有这个要求。...fastcgi_pass_header 允许将其他禁用的标头字段从 FastCGI 服务器传递到客户端。
而今天,我们要学习的则是另一个类似的指令,只不过它是随机在目录中拿出一个文件来当做默认页索引。...proxy_protocol 参数 (1.5.12) 将客户端地址更改为来自 PROXY 协议标头的地址。...就是根据哪个请求头参数来获取,在 Nginx 中通过指定的获取到了之后,会直接修改 REMOTE_ADDR 头的信息。 real_ip_recursive 递归搜索真实 IP 。...如果启用递归搜索,则与其中一个受信任地址匹配的原始客户端地址将替换为请求标头字段中发送的最后一个非受信任地址。 变量 这个模块中包含两个变量。...或者此类值是不以“http://”或“https://”开头的字符串 server_names “Referer”请求标头字段包含服务器名称之一,就是按照当前 Server 模块中的 server_name
header)是服务器发送到浏览器或者其他客户端的一些信息,一般用于登陆成功的情况下返回给客户端的凭证信息,然后下次请求时会带上这个cookie,这样服务器端就能知道是来自哪个用户的请求了。...Cookie请求头字段是客户端发送请求到服务器端时发送的信息(满足一定条件下浏览器自动完成,无需前端代码辅助)。...path=PATH 将服务器上的文件目录作为Cookie的适用对象(若不指定则默 认为文档所在的文件目录) domain=域名 作为 Cookie 适用对象的域名 (若不指定则默认为创建 Cookie...的服务器的域名) Secure 仅在 HTTPS 安全通信时才会发送 Cookie HttpOnly 加以限制, 使 Cookie 不能被 JavaScript 脚本访问 请看上面标红的三个属性,拿一个...的子目录,比如浏览器端Cookie的path为/test,那么xxxxxxx必须为/test或者/test/xxxx等子目录才可以 注: 上面3个条件必须同时满足,否则该Post请求就不能自动带上浏览器端已存在的
检查HTTPS配置 HTTPS是没有二进制状态,因此仅将其激活还是不够的,有许多配置选项会影响加密本身的各个方面。 幸运的是,有些网站会测试你的配置并提供如何解决某些问题的建议。...其中之一是来自Qualys的SSL服务器测试(https://www.ssllabs.com/ssltest/),它运行一组强大的检查。...例如,http://sub.example.com可能适用于某些用户但不适用于其他用户,具体取决于他们之前是否访问过example.com,获得HSTS标头的用户将仅请求HTTPS站点,而其他用户会一直访问...现在浏览器可以不先访问它们的情况下知道HSTS标头的域名列表,Google维护了这样的预加载列表,该列表包含在Chrome和其他浏览器中。 这个内置的预加载列表解决了第一个请求的问题。...,你仍然需要等待标头过期日期是1年。
跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的Web应用被准许访问来自不同源服务器上的指定的资源。...OPTIONS是一种HTTP / 1.1方法,用于确定来自服务器的更多信息,并且是一种安全的方法,这意味着它不能用于更改资源。...因为上面示例中的请求标头包含Cookie标头,所以如果Access-Control-Allow-Origin标头的值为“ *” ,则请求将失败。...*通配符,则服务器也应Origin在Vary响应标头中包含信息-指示客户端服务器响应将基于Origin请求标头的值而有所不同。...访问控制请求标头部分 该Access-Control-Request-Headers发出的预检要求,让服务器知道什么实际的请求时HTTP标头的时候会用到头使用。
Content-Encoding Content-Encoding 实体标头用于压缩媒体类型,它让客户端知道如何进行解码操作,从而使客户端获得 Content-Type 标头引用的 MIME 类型。...他们需要指定使用哪种身份验证方案,以便希望授权的客户端知道如何提供凭据。...staging site(访问登陆站点) 或者类似的,这样用户就可以知道他们要访问哪个区域。...如果缓存的响应包含 Cache-control:must-revalidate标头,则在正常浏览下也会触发该事件。另一个因素是 高级 -> 缓存首选项 面板中的缓存验证首选项。...同源策略是一种很重要的安全策略,它限制了从一个来源加载的文档或脚本如何与另一个来源的资源进行交互。它有助于隔离潜在的恶意文档,减少可能的攻击媒介。
HTTP request smuggling 在本节中,我们将解释什么是 HTTP 请求走私,并描述常见的请求走私漏洞是如何产生的。...注意:由于最后的请求正在重写,你不知道它需要多长时间结束。走私请求中的 Content-Length 头的值将决定后端服务器处理请求的时间。...要进行攻击,您需要走私一个将数据提交到存储功能的请求,其中包含该数据的参数位于请求的最后。后端服务器处理的下一个请求将追加到走私请求后,结果将存储另一个用户的原始请求。...一个示例是 Apache 和 IIS Web 服务器的默认行为,其中对不带斜杠的目录的请求将重定向到带斜杠的同一个目录: GET /home HTTP/1.1 Host: normal-website.com...然后,攻击者访问静态 URL,并接收从缓存返回的敏感内容。 这里的一个重要警告是,攻击者不知道敏感内容将会缓存到哪个 URL 地址,因为这个 URL 地址是受害者用户在走私请求生效时恰巧碰到的。
前者更准确,因为虽然它们是一种协议,因为必须遵守一套严格的规则来建立通信并包含所传输的数据,但该标准并没有对如何构建实际数据有效载荷采取任何规定。...,然后是一组键值标头对,为客户端提供来自服务器的补充信息,关于服务器的请求。...现在服务器知道客户端想要通过活动TCP套接字升级当前正在使用的协议,服务器知道要查找相应的升级头,这将告诉它客户端想要使用哪个传输协议的剩余生命周期 连接。...一旦服务器将websocket视为Upgrade标头的值,它就知道WebSocket握手过程已经开始。...位于中间的代理服务器。 启动升级到WebSocket连接时,客户端必须包含Sec-WebSocket-Key标头,该标头具有该客户端唯一的值。
保护HTTP API的困难在于请求是 无状态的 —— API 无法知道是否有两个请求来自同一用户。 那么,为什么不要求用户在每次调用 API 时提供其 ID 和密码呢?仅因为那将是可怕的用户体验。...「Token」是塑料酒店安全卡,可用于进入你的房间和使用酒店设施,但不能进入任何其他人的房间。 当你退房的时候,你交回卡片。这类似于注销。...如果你想, Payload 可以包含任何数据,但是如果 Token 的目的是 API 访问身份验证,则可以仅包含用户 ID 。...其次,我们哈希的字符串是 base 64 的编码报头,加上 base 64 的编码有效载荷。 第三, secret 是任意一段字符串,只有服务器知道。 问. 为什么在签名散列中包含标头和有效负载?...但是,由于我们知道签名包括标头和有效负载,因为它们是公共信息,所以如果您知道哈希算法(提示:通常在标头中指定),则可以生成相同的哈希。 但是只有服务器知道的秘密 不是 公共信息。
它不仅可以拦截流量,还有很多其他的功能,比如我们在前几章中使用过的爬虫、漏洞扫描器、模糊测试和暴力破解等。它还有一个脚本引擎,可以用来自动化的执行或者创建新的功能。...还显示了SQL语句,语句显示应用程序正在将字段(ua)与浏览器发送的用户代理标头字符串(User-Agent)进行比较。...User-Agent是浏览器在每个请求头中发送的一条消息,用于向服务器标识自己。这通常包含浏览器的名称和版本、基本操作系统和HTML呈现引擎。 2....现在我们再次进入浏览器,看看响应: 原理剖析 在这个小节中,我们使用ZAP代理拦截了一个有效的请求并修改了ua标头,验证了服务器已经接受我们提供的值。...ZAP起到一个中间人的作用,可以任意修改浏览器提供给服务端的请求 另请参阅 另一个改变User-Agent的方法是使用用户代理切换器(在第一章Firefox扩展安装),设置Up Kali Linux and
领取专属 10元无门槛券
手把手带您无忧上云