* worker_connections # 在设置了反向代理的情况下,max_clients = worker_processes * worker_connections / 4 为什么...types_hash_max_size越大,就会消耗更多的内存,但散列key的冲突率会降低,检索速度就更快。...types_hash_max_size越小,消耗的内存就越小,但散列key的冲突率可能上升。...当超过最大次数时,返回 proxy_next_upstream 模块定义的错误。...# proxy_next_upstream : 这个指令属于 http_proxy 模块的,指定后端返回什么样的异常响应 #负载均衡 #upstream DataBase {
这可以让网页在「没有网络连接」的情况下正常使用,因为部分或全部页面可以从服务工作线程缓存中提供服务。...❝与共享工作线程类似,来自「一个域」的多个页面「共享」一个服务工作线程 ❞ 服务工作线程在两个主要任务上最有用: 充当「网络请求的缓存层」 启用「推送通知」 ❝在某种意义上 服务工作线程就是用于把网页变成像...❝在「同一页面」使用「同一 URL」 多次调用该方法会「返回相同的注册对象」:即该操作是「幂等」的 ❞ navigator.serviceWorker.register('....为了尽可能传播更新后的服务脚本,常见的解决方案是在服务端端「响应脚本请求时」设置 Cache-Control:max-age=0 头部。这样浏览器就能「始终取得最新的脚本文件」。...,网络作后备 这个策略「优先考虑响应速度」,但仍会在没有缓存的情况下发送网络请求。
;:主机名称,配置在server块 server_names_hash_bucket_size size;:设置每个散列表占用的内存大小,nginx使用散列表来存储server_name server_names_hash_max_size...size;:影响散列表的冲突率,越大消耗的内存越多,但散列key的冲突则会降低,检索速度也快 server_name_in_redirect on|off;:重定向主机名称的处理 location [...time;:表示nginx向客户端发磅的响应长度超过limit_rate_after后才开始限速 7.文件操作的优化 sendfile on|off;:启用sendfile系统调用来发送文件 aio...on|off;:表示是否在FreeBSD或Linux系统上启用内核级别的异步I/O功能,与sendfile是互斥的 directio size|off;:在FreeBSD和Linux系统上使用O_DIRECT...;:废黜DNS名字解析服务器的地址 resolver_timeout time;:DNS解析超时时间 server_tokens on|off;:返回错误页面时是否在Server中注明Nginx版本 D
在默认情况下,大多数异常都会转换为一个带有状态码500的内部服务器错误的HTTP响应。 这个HTTPResponseException类型是一个特殊的类型。...例如,在以下方法中,如果这个id参数无效,那么会返回“404---未找到” 1 public Product GetProduct(int id) 2 { 3 var item...= repository.Get(id); 4 if (item == null) 5 //未找到返回一个404的状态码 6...以下实例演示了如何用HttpError在响应中返回HTTP状态码“404--未找到”: 1 public HttpResponseMessage GetProduct(int id) 2 { 3...这让你能够在正常成功情况下返回强类型模型,而在错误时,仍返回HttpError 1 public Product GetProduct(int id) 2 { 3 var item
2.2 CGI脚本支持Nginx也支持CGI脚本的执行,当请求需要调用CGI脚本时,Nginx会将请求传递给后端的CGI进程,在CGI脚本的帮助下生成响应结果。...当客户端没有提供Accept头部或者请求的文件类型在mime.types文件中未找到时,将使用该类型作为默认类型。...error_page:指定错误页面,常用选项有404(文件未找到)、500(服务器内部错误)等。location.internal:禁止外部直接访问此页面。4....Nginx的性能优化4.1 启用缓存在Nginx中启用缓存可以将静态文件暂存在服务器的内存中,当客户端再次请求相同的文件时,Nginx可以直接从缓存中读取文件并返回给客户端。...4.3 配置HTTP/2协议Nginx支持HTTP/2协议,该协议可以在一个连接上同时传输多个请求和响应,减少了网络延迟,提高了传输效率,建议启用该协议以提升系统性能。
缓存 缓存会根据请求保存输出内容的副本,例如 页面、图片、文件,当下一个请求来到的时候:如果是相同的 URL,缓存直接使 用本地的副本响应访问请求,而不是向源服务器再次发送请求。...需要使用缓存协商,先与服务器确认返回的响应是否被更改,如果之前的响应中存在 ETag ,那么请求的时候会与服务端验证,如果资源未被更改,则可以避免重新下载。...1、Last-Modified/If-Modified-Since 二者的值都是 GMT 格式的时间字符串,具体过程: 浏览器第一次跟服务器请求一个资源,服务器在返回这个资源的同时,在 respone...如果协商缓存没有命中,浏览器直接从服务器加载资源时,Last-Modified 的 Header 在重新加载的时候会被更新,下次请求时,If-Modified-Since 会启用上次返回的Last-Modified...Tips:Last-Modified与ETag是可以一起使用的,服务器会优先验证ETag,一致的情况下,才会继续比对Last-Modified,最后才决定是否返回304。
每次比较当前元素与目标值是否相等,如果相等则返回当前位置,表示找到目标值。如果遍历完整个数据集仍未找到目标值,则返回-1,表示未找到目标值。...= -1: print("目标值在位置", result)else: print("未找到目标值")在最坏情况下,线性查找的时间复杂度为O(n),其中n为数据集的大小。...因此,在实际应用中,需要根据具体的需求和场景选择适合的哈希冲突解决方法。2.3.1.3 再散列法再散列法(Rehashing)它是在原有的哈希表中再次进行哈希运算,以找到一个新的位置存储冲突的元素。...常见的再散列方法包括线性探测再散列、平方探测再散列、双散列等。再散列法的优点是简单、易于实现,并且在处理小规模数据集时表现良好。...然而,当数据量大或者哈希函数选择不当时,再散列法可能导致严重的哈希冲突问题,使查询效率下降。因此,在设计哈希表时,需要选择合适的哈希函数和再散列方法,以避免冲突。
规则 #8:不要使用 404 来表示“未找到” HTTP 规范规定,应使用 404 来表示未找到资源。按照字面解释,如果向不存在的 ID 提出 GET/PUT/DELETE 等请求,则应返回 404。...HTTP 404 表示 "未找到内容",这与返回 HTTP 500 几乎一样--它可能意味着内容不存在,也可能意味着出了问题;客户端无法确定是哪种情况。...如果将 404 作为成功处理,而堆栈中的失败返回 404,作业就会从队列中删除,删除也不会传播。我在现实生活中就遇到过这种情况。...但几乎任何策略都比返回 404(实体未找到)要好。 规则#10:一定要使用结构化错误格式 如果您正在为一个简单的网站构建后端,您可能可以忽略此部分。...在 409 响应正文中提供原始 ID 亮点:通过允许具有相同参数的重复请求或在冲突时返回现有 ID,使 API 具有幂等性。
1// cache.put(3, 3);// 该操作会使得密钥 2 作废// console.log("cache.get(2)", cache.get(2))// 返回 -1 (未找到)// cache.put...事件流阻止在一些情况下需要阻止事件流的传播,阻止默认动作的发生event.preventDefault():取消事件对象的默认动作以及继续传播。...3开始执行800ms时,3任务执行完毕,输出3,任务4开始执行1000ms时,1任务执行完毕,输出1,此时只剩下4任务在执行1200ms时,4任务执行完毕,输出4实现代码如下:class Scheduler...之后再使用Promise.all来执行这个函数,执行的时候,看到一秒之后输出了1,2,3,同时输出了数组1, 2, 3,三个函数是同步执行的,并且在一个回调函数中返回了所有的结果。...他们还允许访问推送通知和后台同步API浏览器对 ServiceWorker 做了很多限制在 ServiceWorker 中无法直接访问 DOM,但可以通过 postMessage 接口发送的消息来与其控制的页面进行通信
Nginx 是一个很强大的高性能 Web 和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx 是 Apache 服务不错的替代品。...在我们的日常工作学习中,我们会该如何去优化自己的 Nginx 服务器?遇到以下问题我们该如何处理呢?...一、自定义返回客户端的404错误页面1)优化前,客户端使用浏览器访问不存在的页面,会提示404文件未找到# firefox http://192.168.4.5/xxxxx //访问一个不存在的页面2)...UDP代理模块> --with-http_stub_status_module //开启status状态页面# make && make install //编译并安装2)启用...Reading:当前服务器正在读取客户端请求头的数量。Writing:当前服务器正在写响应信息的数量。Waiting:当前多少客户端在等待服务器的响应。
作者:马哥运维 Nginx 是一个很强大的高性能 Web 和反向代理服务,它具有很多非常优越的特性,在连接高并发的情况下,Nginx 是 Apache 服务不错的替代品。...其特点是占有内存少,并发能力强,事实上 nginx 的并发能力在同类型的网页服务器中表现较好,因此国内知名大厂例如:淘宝,京东,百度,新浪,网易,腾讯等等都在使用 Nginx 网站。...在我们的日常工作学习中,我们会该如何去优化自己的 Nginx 服务器?遇到以下问题我们该如何处理呢?...一、自定义返回客户端的404错误页面 1)优化前,客户端使用浏览器访问不存在的页面,会提示404文件未找到 # firefox http://192.168.4.5/xxxxx //访问一个不存在的页面...Reading:当前服务器正在读取客户端请求头的数量。 Writing:当前服务器正在写响应信息的数量。 Waiting:当前多少客户端在等待服务器的响应。
如果没有,NGINX 默认返回 HTTP 404 错误(未找到)。...在以下示例中,如果 try_files 指令的所有参数都不会解析为现有文件或目录,则会返回 404 错误。...启用 sendfile 默认情况下,NGINX 会自行处理文件传输,并在发送之前将文件复制到缓冲区中。...这使得 NGINX 可以在 sendfile() 获取数据块之后立即在一个数据包中发送 HTTP 响应头。...输出可能如下所示,它显示在端口 80上的监听队列中,有 10 个未接受的连接,这些连接针对配置的最多 128 个排队连接。这种情况很正常。
它充当了Web应用程序与浏览器之间的代理服务器,进行资源在文件级别下的缓存与操控,拦截页面请求,实现在不同的情况下对不同请求的响应策略。 ...当网络状态异常时(fetch().catch()),返回404页面的缓存给用户,告知用户当前处于无网络状态,不能访问相关页面。...指定了一些页面和文件进行缓存,我们希望用户在无网络的情况下只能访问到我们指定缓存的页面。 ..."> 声明后,注意访问一下是否正确返回:https://v3u.cn/manifest.json 随后在页面中注册Service Worker服务: if ('serviceWorker...,看应用清单有没有读出你的 PWA 应用信息配置文件: 随后在serviceWorker标签下检查serviceWorker是否正确运行: 接着访问站点,在地址栏即可添加PWA应用:
映射:键值对 1.1 基本映射操作 Java类库提供两个基本的实现,HashMap和TreeMap。两个类都实现了Map接口 散列映射对键进行排序,树映射对键的整体排序,并将其组织成搜索树。...散列只作用于键 散列更快,不需要对键进行排序的情况下选择散列 下列代码对存储的员工信息建立一个散列映射 Map staff = new HashMap();...键是唯一的不能对同一个键赋值两次,如果赋值两次,第二次的会把第一次的覆盖 remove方法用于从映射中删除指定的元素,size方法用于返回映射中的元素数 要迭代映射中的键值对forEach是很好的方法...scores.forEach((k,v)=>{ // console.log k,v }) 介绍对应的方法 V get(Object key) //返回与键对应的值 default...V getOrDefault(Object key,V defaultValue) //如果未找到返回默认值 V put(K key, V value) // 插入对应的键值对 void putAll
,int *pos) { //在散列表T[0..m-1]中查找K,成功时返回1。...失败有两种情况:找到一个开放地址 //时返回0,表满未找到时返回-1。...查找成功返回 if(T[*pos].key==NIL) return 0;//查找到空结点返回 }while(++i<m) //最多做m次探查 return -1; //表满且未找到时,查找失败 } /...因此,在等概率情况下,也可将散列表在查找不成功时的平均查找长度,定义为查找不成功时对关键字需要执行的平均比较次数。...【例】例9.1和例9.2的散列表中,在等概率情况下,查找不成功时的线性探查法和拉链法的平均查找长度分别为: ASLunsucc=(9+8+7+6+5+4+3+2+1+1+2+1+10)/13=59/13
第2步 - 设置视图 在此步骤中,我们将使用HttpResponse响应对象来设置基本的home 视图和send_push视图。视图是从Web请求返回响应对象的函数。...视图通常会为每个请求返回响应。此视图返回一个简单的HTML标记作为响应。 我们将创建的下一个视图是send_push,它将处理使用该django-webpush包发送的推送通知。...要创建send_push视图,首先添加以下导入以启用JSON响应并访问webpush库中的send_user_notification函数: from django.http.response import...如果缺少任何必需的属性,视图将返回JSONResponse并且呈现404“未找到”的状态。...如果与给定的主密钥的用户存在,该视图将使用所述匹配的主键来返回user,该主键使用来自django.shortcuts库的get_object_or_404函数。
Service Worker 可以启用哪些功能? 在本节中,我将进一步详细介绍Service Worker的功能,包括一些小代码示例。...现在唯一缺少的是监听 fetch 事件并从缓存中返回结果。可以通过 fetch 事件可以拦截到当前作用域范围内的 http/https 请求,并且给出自己的响应。...,我们尽可能使用缓存的内容进行响应。...这里实现了一个缓存优先、降级处理的策略逻辑:监控所有 http 请求,当请求资源已经在缓存里了,直接返回缓存里的内容;否则使用 fetch API 继续请求,如果是 图片或 css、js 资源,请求成功后将他们加入缓存中...定期后台同步 定期后台同步解决与正常后台同步不同的问题。 该API可用于在后台更新数据,而不必等待用户。 这对很多应用程序都很有用。有了这项技术,用户可以在没有互联网连接的情况下阅读最新的新闻文章。
在默认情况下,大多数异常都被转换为一个带有状态码500的内部服务器错误的HTTP响应。 这个HTTPResponseException类型是一个特殊的类型。...这种异常会返回你在异常构造器中指定的任何HTTP状态码。例如,在以下方法中,如果这个id参数无效,那么会返回“404——未找到”。...以下示例演示了如何用HttpError在响应体中返回HTTP状态码“404 — 未找到”: public HttpResponseMessage GetProduct(int id) { Product...但如果所请求的产品未找到,则HTTP响应会在请求体中包含一个HttpError。...这让你能够在正常成功情况下返回强类型模型,而在有错误时,仍返回HttpError。
定义 输入:散列表(Hash Table)、待查找的键(Key) 输出:找到的值(Value)或表示键不存在的特定值(如NULL) 过程 1、根据给定的键使用散列函数计算键的散列值(Hash Value...散列函数将键 转换为一个固定大小的整数,用于确定键在散列表中的位置。 2、使用散列值映射到散列表的索引位置。...常见的探测方法有 线性探测、二次探测和双重散列等。 5、在桶中搜索待查找的键。如果找到了匹配的键,返回对应的值;如果未找到, 则继续冲突解决过程,直到找到匹配的键,或确定键不存在为止。...通常情况下,负载因子的合理范围是0.7 到0.8。 冲突处理方法:不同的冲突处理方法会对查找性能产生影响。链地址法在发生冲 突时,将冲突的元素存储在链表中,查找时需要遍历链表。...但是在最坏情况下,如果发生大量冲突,查找操作的时间复 杂度可能会退化为O(n),其中n为散列表的大小。
本文介绍 Web 服务开发中自定义响应,涵盖标准 HTTP 响应状态码局限性、自定义响应价值、设计原则与实现、在 Spring Boot 项目应用、与其他响应格式对比总结及应用场景。1....标准HTTP响应与自定义响应1.1标准HTTP响应状态码在 Web 服务开发中,HTTP 协议有一系列状态码,如 200(成功)、400(错误请求)、404(未找到)等。...比如服务器返回 404 时,客户端只知请求资源不存在,不知具体哪个资源、为何找不到。...自定义响应在Spring Boot项目中的应用3.1 结合Controller层在 Spring MVC 框架中,可在 Controller 层方法返回自定义响应对象,以保持所有 API 接口响应格式一致...自定义响应在架构下关键作用:简化前端处理逻辑,前端开发者可从返回 JSON 数据中通过code判断请求结果,message获取错误信息,data含展示数据。
领取专属 10元无门槛券
手把手带您无忧上云