所谓的递归查询,是指DNS服务器在收到用户发起的请求时,必须向用户返回一个准确的查询结果。如果DNS服务器本地没有存储与之对应的信息,则该服务器需要询问其他服务器,并将返回的查询结构提交给用户。...而迭代查询则是指,DNS服务器在收到用户发起的请求时,并不直接回复查询结构,而是告诉另一台DNS服务器的地址,用户再向这台DNS服务器提交请求,这样依次反复,直到返回查询结果。...发送端从应用层往下走,接收端从数据链路层往上走 首先 :应用层客户端发送HTTP请求 HTTP请求包括请求报头和请求主体两个部分,其中请求报头了至关重要的信息,包括请求的方法(GET/POST)、目标url...,返回的信息是否需要换成,以及客户端是否发送cookie等。 然后:传输层TCP传输报文 位于传输层的TCP协议为传输报文提供可靠的字节流服务。...服务器响应请求 服务接收到客户端发送的HTTP请求后,查找客户端请求的资源,并返回响应报文,响应报文中包括一个重要的信息 -- 状态码。状态码由三位数字组成。
启动流程 一、请求流程 其他的不看了,我们就直接从 DispatcherServlet 处入手了. 我们只看我们关注的,不是我们关注的,我们就不做多讨论了....剩余了其他的代码 /** 返回此请求的处理程序和任何拦截器。 可以根据请求 URL、会话状态或实现类选择的任何因素进行选择。...,如果未找到特定请求,则返回null 。.../** 查找给定请求的处理程序,如果未找到特定请求,则返回null 。 如果设置了一个null返回值将导致默认处理程序。...,并返回一个(可能是新的)映射与当前请求相关的条件。
需要指出的是,尽管 HTTP 规范中说明应该用CRLF 来表示行终止,但稳健的应用程序也应该接受单个换行符作为行的终止。有些老的,或不完整的 HTTP 应用程序并不总是既发送回车符,又发送换行符。...TRACE 客户端发起一个请求时,这个请求可能要穿过防火墙、代理、网关或其他一些应用程序。每个中间节点都可能会修改原始的 HTTP 请求。...从很多方面来看,100 Continue 都是一种优化。客户端应用程序只有在避免向服务器发送一个服务器无法处理或使用的大实体时,才应该使用 100 Continue。...400~499——客户端错误状态码 有时客户端会发送一些服务器无法处理的东西,比如格式错误的请求报文,或者最常见的是,请求一个不存在的 URL。...状态码 原因短语 含义 400 Bad Request 用于告知客户端它发送了一个错误的请求 401 Unauthorized 与适当的首部一同返回,在这些首部中请求客户端在获取对资源的访问权之前,对自己进行认证
所以,选择PHP来构建RESTful服务,您将能够快速、高效地构建稳健且可扩展的应用程序。实现RESTful端点实现GET请求当实现GET请求时,我们的目标是从服务器获取资源的信息。...如果查询返回了结果,我们提取资源信息并将其编码为JSON格式返回给客户端。如果未找到资源,我们返回404错误响应。实现POST请求实现POST请求时,我们的目标是在服务器上创建新资源。...实现DELETE请求实现DELETE请求时,我们的目标是从服务器上删除现有资源。在RESTful API中,DELETE请求通常用于删除资源。...将JWT包含在每个请求中: 客户端在发送请求时,将JWT包含在请求的Authorization头部中。服务器可以解码JWT并验证用户的身份。...这样可以确保即使发生异常,也不会导致整个应用程序崩溃。记录错误信息: 当捕获到异常时,我们应该记录错误信息,以便于后续的故障排除和调试。可以将错误信息记录到日志文件中或将其发送到监控系统。
客户端应用程序只有在避免向服务器发送一个服务器无法处理或使用的大实体,才应该使用 100 Continue 200 ~ 299,成功状态码 客户端发起请求时,这些请求通常都是成功的。...返回时会带有一个选项列表,用户可以选择期望使用的那项 301 Moved Permanently 在请求的 URL 已被移除时使用。...只有少量错误,比如404,还是会穿过浏览器来到用户面前 状态码 原因短语 含义 400 Bad Request 用于告知客户端它发送了一个错误的请求 401 Unauthorized 与适当的首部一同返回...如果代理或其他中间应用程序有确切证据说明源端服务器会为某请求产生一个失败的期望,就可以发送这个响应状态码 500 ~ 599,服务器错误状态码 有时客户端发送了一条有效请求,服务器自身却出错了。...Implemented 客户端发起的请求超出服务器的能力范围(比如,使用了服务器不支持的请求方法)时,使用此状态码 502 Bad Gateway 作为代理或网关使用的服务器从请求响应链的下一条链路上收到了一条伪响应
Method 请求方法,表明客户端希望服务器对资源执行的动作; 1.1 GET 向服务器请求资源。 1.2 HEAD 和GET方法的行为类似,但服务器在响应中只返回首部,不会返回实体的主体部分。...,然后由这个程序对其进行处理); 1.5 TRACE 客户端发起一个请求时,这个请求可能要穿过防火墙、代理、网关或其他一些应用程序。...很多HTTP应用程序会根据方法的不同做出不同的事情,比如,代理可能会将POST请求直接发给服务器,而将GET请求发送给另一个HTTP应用程序(比如WEB缓存)。TRACE并不提供区分这些方法的机制。...2.3 400~499--客户端错误状态码 400:Bad Request 告知客户端它发送了一个错误的请求; 401:Unauthorized 与适当的首部一同返回,在这些首部中要求客户端在访问资源之前...413:Request Entity Too Large 客户端发送的实体主体部分比服务器能够或希望处理的要大时,使用此状态; 414:Request URI Too Long 客户端所发送的请求中请求的
1XX:信息状态码 100 Continue 继续,一般在发送 post 请求时,已发送了 http header之后服务端将返回此信息,表示确认,之后发送具体参数信息 2XX:成功状态码 200 OK...正常返回信息 201 Created请求成功并且服务器创建了新的资源 202 Accepted服务器已接受请求,但尚未处理 3XX:重定向 301 Moved Permanently请求的网页已永久移动到新位置...302 Found临时性重定向 303 See Other临时性重定向,且总是使用 GET 请求新的 URI 304 Not Modified 自从上次请求后,请求的网页未修改过 4XX:客户端错误 400...Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求 401 Unauthorized请求未授权 403 Forbidden 禁止访问 404 Not Found...找不到如何与 URI 相匹配的资源 5XX:服务器错误 500 Internal Server Error最常见的服务器端错误 503 Service Unavailable 服务器端暂时无法处理请求(
当ASP.NET Core应用在处理请求过程中出现错误时,我们可以利用它们将原生的或者定制的错误信息作为响应内容发送给客户端。...[更多关于ASP.NET Core的文章请点这里] 一、显示开发者异常页面 如果ASP.NET Core应用在处理某个请求时出现异常,它一般会返回一个状态码为“500 Internal Server Error...客户端错误:表示因客户端提供不正确的请求信息而导致服务器不能正常处理请求,响应状态码的范围为400~499。...Task.Run(() => context.Response.StatusCode = 500)))) .Build() .Run(); } } 如上面的代码片段所示,应用程序在处理请求时总是将响应状态码设置为...对于如下所示的应用来说,它在处理任意一个请求时总是随机选择400~599的一个整数来作为响应的状态码,所以客户端返回的响应内容总是通过注册的StatusCodePagesMiddleware中间件来提供
(1)简单版 [ 100 Continue 继续,一般在发送post请求时,已发送了httpheader之后服务端将返回此信息,表示确认,之后发送具体参数信息...303 See Other 临时性重定向,且总是使用GET 请求新的 URI。 304 Not Modified 自从上次请求后,请求的网页未修改过。...400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。 401 Unauthorized 请求未授权。...、理解和接受 200——表明该请求被成功地完成,所请求的资源发送回客户端 201——提示知道新文件的URL 202——接受和处理、但处理未完成 203——返回信息不确定或不完整...303——建议客户访问其他URL或访问方式 304——自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存了,还可以继续使用 305——请求的资源必须从服务器指定的地址得到
介绍 访问 Web 服务器或应用程序时,服务器收到的每个 HTTP 请求都会以 HTTP 状态代码进行响应。HTTP 状态代码是三位数代码,分为五个不同的类别。...客户端和服务器错误概述 客户端错误或从 400 到 499 的 HTTP 状态代码是用户客户端(即 Web 浏览器或其他 HTTP 客户端)发送 HTTP 请求的结果。...服务器错误,或从 500 到 599 的 HTTP 状态代码,当 Web 服务器知道发生了错误或无法处理请求时,它会返回。...一般故障排除提示 使用 Web 浏览器测试 Web 服务器时,更改服务器后刷新浏览器 检查服务器日志以获取有关服务器如何处理请求的更多详细信息。...400 错误请求 400 状态代码或错误请求 错误表示发送到服务器的 HTTP 请求的语法无效。
304 返回时不包含任何响应的主体部分。304 与重定向无关系。 307 Temporary Redirect:临时重定向。与 302 含义相同。...400 Bad Request:报文中存在语法错误,浏览器无法理解,但会像对待 200 OK 一样对待该状态码。...注:不少返回的状态码响应都是错的,比如 Web 应用程序内部发生错误,状态码依然返回 200 OK。...发送 HTTP 请求时,必须在 Host 首部内完整指定主机名或域名的 URI。 HTTP 通信时,除客户端和服务器以外,还有一些用于通信数据转发的应用程序,如代理、网关和隧道。...接收从客户端发送来的请求时,其就像自己拥有资源的源服务器一样对请求进行处理;利用网关可以由 HTTP 请求转化为其他协议通信;网关可以提高通信的安全性,因为可以在客户端与网关之间的通信线路上加密以确保连接的安全
Flask 提供方法从请求中提取JSON并以其作为Python结构返回。...装饰器检测到未通过身份验证的用户时,可以将用户重定向到HTML登录页面。API中没有HTML或登录页面的概念,如果客户端发送带有无效或所有权凭证的请求,服务器必须拒绝请求并返回401状态码。...在创建新令牌之前,此方法会检查当前分配的令牌在过期之前是否至少还剩一分钟,并且在这种情况下会返回现有的令牌。 使用令牌时,有一个策略可以立即使令牌失效总是总是一件好事,而不是仅依赖终止日期。...当你编写一个API时,你必须考虑到你的客户端并不总是要连接到Web应用程序的Web浏览器。...pC1Nu9wwyNt8VCj1trWilFdFI276AcbS" API友好的错误消息 你是否还记得,在本章的前部分,当我要求你用一个无效的用户URL从浏览器发送一个API请求时发生了什么?
GET — 获取资源,请求指定的页面信息,并返回实体主体。 POST — 创建资源,向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。...201 CREATED — 当您使用 POST 方法创建新资源时,可以使用此方法。 202 ACCEPTED —这可以用来确认发送给服务器的请求。...400 BAD REQUEST —当客户端输入验证失败时,可以使用此方法。 401 UNAUTHORIZED / 403 FORBIDDEN— 如果用户或系统无权执行某项操作,则可以使用此选项。...大多数现代应用程序都应该返回 JSON 响应,除非你有一个仍然需要获得 XML 响应的遗留应用程序。...使用正确的错误信息 保持应用程序发送的一组错误消息并以正确的 id 对其做出响应总是一个很好的做法。
令牌端点是应用程序发出请求以获取用户访问令牌的地方。本节介绍如何验证令牌请求以及如何返回适当的响应和错误。...授权码请求 Authorization Code Request 当应用程序为访问令牌交换授权代码时,将使用授权代码授予。...用户通过重定向 URL 返回到应用程序后,应用程序将从该 URL 中获取授权代码并使用它来请求访问令牌。此请求将发送到令牌端点。 请求参数 访问令牌请求将包含以下参数。...如果可能,该服务应撤销以前从该授权代码发出的访问令牌。 Password Grant 密码授权 当应用程序将用户的用户名和密码交换为访问令牌时,将使用密码授权。...错误响应返回一个 HTTP 400 状态代码(除非另有说明),带有error和error_description参数。该error参数将始终是下面列出的值之一。
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,...DELETE(DELETE):从服务器删除资源。...400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。...410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。 422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。...query: 查询字符串,为发送给服务器的参数,在这里更多发送数据分页、排序等参数。 对于RESTful API的URL具体设计的规范如下: 1.不用大写字母,所有单词使用英文且小写。
发送给服务器的字符串后键值对 success() 当请求成功时回调的函数 dataType 从服务器返回的预期数据。 ... success() 当请求成功时回调的函数 jQuery.getScript() 使用一个HTTP GET请求从服务器加载并执行一个JavaScript文件。 ...如果要发送 DOM 树信息或其它不希望转换的信息,请设置为 false。 success 类型:Function 请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态。 ...例如,客户端请求不存在的页面,客户端未提供有效的身份验证信息。400-错误的请求。 401-访问被拒绝。IIS定义了许多不同的401错误,它们指明更为具体的错误原因。...502-Web服务器用作网关或代理服务器时收到了无效响应。 502.1-CGI应用程序超时。 502.2-CGI应用程序出错。application. 503-服务不可用。
它能够从多个应用程序中混搭数据到混合应用程序中,或是创建一个能增强使用他人应用体验的应用程序。...id=123 当人们开始去实现他们自己的API接口时,问题就出现了。竟然没有一个标准的方法来命名URL,人们总是要参考API才得知它是如何运作的。...: 200 – OK (默认的) 201 – Created(已创建) 202 – Accepted (已接受:常用语删除请求) 客户端错误状态码: 400 –请求出错(语法格式有误或服务器无法理解此请求...例如,请求一个网页,你想以HTML的格式请求,或者如果你想要下载一张图片,返回格式应该是图片的格式。然而,响应请求格式是服务器的职责。...当用户在网站上访问需要认证授权的页面时,浏览器就会发送cookie,应用程序就会查找seesion会话中的ID(如果它没有失效的话),由于用户的ID保存在seesion中,用户就可以浏览页面了。
就像任何性能一样,API 性能主要取决于如何响应不同类型的请求。例如:典型的电商场景,显示用户当前的订单。应用程序从一个 API 获取订单详情。...如何确保我API 能够将所有数据返回给用户,而不会出现延迟、服务器错误和过多请求等问题呢? 一般地, 如何在API设计中提升性能呢?...常见的一种方式是将API请求中的静态资源分离开了,可以使用内容交付网络(CDN)来更快地服务不同地区请求中的静态资源。 9 启用分页,过滤排序 对于大型数据集,限制返回的数据量是至关重要的。...此外,可能希望指定要包含在响应中的资源的字段或属性,从而限制返回的数据量,最终希望查询特定的值并对返回的数据进行排序。 分页有助于从多个响应创建大量的内容。...当链接在响应中返回时,api 变得更具自我描述性。对于在支持分页的响应中返回的集合,“ first”、“ last”、“ next”和“ prev”链接至少是有益的。
当网站充满了由后台加载的脚本运行的图像和交互式内容时,打开网站并不是一项简单的任务。它包括从服务器逐个请求许多不同的文件。最大限度地减少这些请求的数量是加快网站速度的一种方法。...以下命令从我们的本地Nginx服务器请求文件并显示响应头。...使用Web浏览器时,如果浏览器想要再次请求相同的文件(例如,刷新页面时),ETag则会将值存储并发送回带有If-None-Match请求标头的服务器。 我们可以使用以下命令在命令行上模拟它。...使用ETag命令的问题是浏览器总是向服务器发送一个请求,询问它是否可以重用其缓存文件。即使服务器以304响应而不是再次发送文件,仍然需要时间来发出请求并接收响应。...如果未设置标头,浏览器将始终从服务器请求文件,期望200 OK或304 Not Modified响应。 我们可以使用头模块来设置这些HTTP头。
当网站充满了由后台加载的脚本运行的图像和交互式内容时,打开网站并不是一项简单的任务。它包括从服务器逐个请求许多不同的文件。最大限度地减少这些请求的数量是加快网站速度的一种方法。...以下命令从我们的本地Nginx服务器请求文件并显示响应头。...使用Web浏览器时,如果浏览器想要再次请求相同的文件(例如,刷新页面时),则会将ETag值存储并发送回带有If-None-Match请求标头的服务器。 我们可以使用以下命令在命令行上模拟它。...ETag的问题是浏览器总是向服务器发送一个请求,询问它是否可以重用其缓存文件。即使服务器以304响应而不是再次发送文件,仍然需要时间来发出请求并接收响应。...如果未设置标头,浏览器将始终从服务器请求文件,期望200 OK或304 Not Modified响应。 我们可以使用头模块来设置这些HTTP头。
领取专属 10元无门槛券
手把手带您无忧上云