计算机网络 应用层 HTTP协议
文章平均质量分 82
应用层。。。。。。。。。。。。。。。。。。
富士康质检员张全蛋
人生实难,唯有自渡。只有接受了真实现的现状和真实的自己,调整好心态,才能脚踏实地的活着,然后去发现角落处的那些惊喜和美好,去相信一切苦难困境都会过去!“即使身处阴沟,也要记得仰望星空”。
展开
-
nginx 405错误是什么意思
当Web服务器收到一个它不支持的HTTP请求方法时,就会返回405错误。405错误通常是由于客户端发出了不兼容或不支持的HTTP请求方法。例如,客户端可能请求一个只能通过GET方法访问的资源,但使用了POST方法。要解决405错误,需要确保客户端发送正确的HTTP请求方法。可以查看服务器文档或使用HTTP请求测试工具来确定正确的请求方法。原创 2024-08-07 11:27:34 · 2447 阅读 · 0 评论 -
典型的 HTTP 会话
从 HTTP/1.1 开始,连接在完成第三阶段后不再关闭,客户端可以再次发起新的请求。这意味着第二步和第三步可以连续进行数次。原创 2024-05-27 16:06:01 · 2350 阅读 · 0 评论 -
HTTPS 加密解密大致流程
在我们开始配置之前,让我们先了解一下HTTPS和它的重要性。原创 2024-04-16 10:48:27 · 1244 阅读 · 0 评论 -
HTTP 跨域名请求(CORS)
在 HTML 中,等标签以及 Ajax 都可以指向一个资源地址,而所谓的跨域请求就是指:当前发起请求的域与该请求指向的资源所在的域不一样。这里的域指的是这样的一个概念:我们认为若协议 + 域名 + 端口号均相同,那么就是同域。HTML中a/form/img/css/script/iframe/ajax都可以指向资源发起请求的资源所在域不同于该请求所指向资源所在的域的HTTP请求就叫做跨域HTTP请求。原创 2023-09-27 14:45:43 · 1120 阅读 · 0 评论 -
HTTP 域名和主机是一回事吗?有了主机和域名,如何建站?
域名不等于主机名,例如是一个权威域的域名,但是根本没有一个主机的名字叫做baidu.com,但是就是一个主机名,它就是负责baidu的服务器的主机名,www.也是一个主机名,它是百度web服务器的主机名。所以说域名不是主机名,域名是用来标识一个域的而不是标识主机的(有些主机可能使用域名当作主机名)。其实也就是可以申请一个域名,域名下面可以有多个主机,这些主机名称对应一个IP。原创 2024-04-10 11:30:15 · 1267 阅读 · 0 评论 -
应用层 DNS Linux 下解析域名命令 dig 命令使用详解
默认情况下 dig 命令查询 A 记录,上图中显示的 A 即说明查询的记录类型为 A 记录。在尝试查询其它类型的记录前让我们先来了解一下常见的 DNS 记录类型。由于一些原因,希望从指定的 DNS 服务器上进行查询(从默认的 DNS 服务器上获得的结果可能不准确)。A 地址记录,用来指定域名的 IPv4 地址,如果需要将域名指向一个 IP 地址,就需要添加 A 记录。NS 域名服务器记录,如果需要把子域名交给其他 DNS 服务器解析,就需要添加 NS 记录。这样结果中就只有 CNAME 的记录。原创 2023-09-19 14:28:59 · 978 阅读 · 0 评论 -
HTTP 资源和URI 标识互联网上的内容
HTTP 请求的内容通称为"资源"。”资源“这一概念非常宽泛,它可以是一份文档,一张图片,或所有其他你能够想到的格式。每个资源都由一个 () 来进行标识。(统一资源标识符)是一个指向资源的字符串。最通常用在上来指定 Web 上资源文件的具体位置。URI 的最常见形式是统一资源定位符 (),它也被称为Web 地址。q=URL在浏览器的地址栏中输入上述任一地址,浏览器就会加载相应的网页(资源)。URL 由多个必须或可选的组件构成。下面给出了一个复杂的 URL:http://原创 2022-07-16 08:36:27 · 496 阅读 · 0 评论 -
HTTP 选择 www 或非 www URL
在一个 HTTP 网址中,在开头http://或https://后的第一个子字符串称为域名。该域名被托管到了文档所在的服务器。一个服务器不一定是一个独立的物理机:几个服务可以驻留在同一台物理机器上。此外,一个服务器可以通过多台机器进行处理,协作处理响应或平衡它们之间的请求负载。重点在于,从语义上去理解,一个域名代表一个单独的服务器。原创 2024-05-20 18:57:44 · 2390 阅读 · 0 评论 -
HTTP 基本认证、身份验证
HTTP 提供一个用于权限控制和认证的通用框架。本页介绍了通用的 HTTP 认证框架,并且展示了如何通过 HTTP 的“Basic”模式限制对你服务器的访问。原创 2023-07-02 11:15:26 · 341 阅读 · 0 评论 -
HTTP 请求 (request)、响应(response) 请求响应格式
HTTP 消息是服务器和客户端之间交换数据的方式。有两种类型的消息:请求(request)——由客户端发送用来触发一个服务器上的动作;响应(response)——来自服务器的应答。HTTP 消息由采用 ASCII 编码的多行文本构成。在 HTTP/1.1 及早期版本中,这些消息通过连接公开地发送。在 HTTP/2 中,为了优化和性能方面的改进,曾经可人工阅读的消息被分到多个 HTTP 帧中。原创 2022-08-05 17:49:38 · 1520 阅读 · 0 评论 -
HTTP curl 用法指南
curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这一类的图形界面工具。本文介绍它的主要命令行参数,作为日常的参考,方便查阅。内容主要翻译自。为了节约篇幅,下面的例子不包括运行时的输出,初学者可以先看我以前写的《curl 初学者教程》。不带有任何参数时,curl 就是发出 GET 请求。上面命令向发出 GET 请求,服务器返回的内容会在命令行输出。-I。原创 2023-01-04 23:05:03 · 4164 阅读 · 0 评论 -
HTTP 无状态 持久化连接 流水线方式
HTTP很有名的特点,无状态,老年痴呆和无状态非常的类似,http是一个不会保存状态的协议,它不对请求,响应的通信状态做保存。因为无状态,使得很多业务的处理变的复杂,比如用户登入到一家网站购物,在不同的页面进行跳转的时候,需要保持这种登入状态,因为只有这样网站才能知道是谁发起的请求,是谁购物,谁下单。通信的方式提供请求和响应的方式来完成的,请求从客户端发出,而后服务器端响应该请求,通信是从客户端开始建立的。浏览器访问这个网站,先建立TCP连接,3次握手,请求第一个文件,然后收到,再请求第二个文件,收到。..原创 2022-07-18 14:52:30 · 4079 阅读 · 0 评论 -
HTTP 的报文结构
HTTP有两类报文请求报文——从客户向服务器发送请求报文。(发送哪些请求,如GET获取网页内容。账户名,密码提交给服务器,需要POST)响应报文——从服务器到客户的回答。(服务器收到请求给客户端一个状态,请求成功或者失败,有没有权限访问)由于HTTP是面向正文的(text-oriented),因此在报文中的每一个字段都是一些ASCII码串,因而每个字段的长度都是不确定的。(明文的,不加密)...原创 2022-07-27 16:28:07 · 1204 阅读 · 0 评论 -
HTTP content-type MIME 类型(IANA 媒体类型)
Content-Type(MediaType),即是Internet Media Type,互联网媒体类型,也叫做MIME类型。在互联网中有成百上千中不同的数据类型,HTTP在传输数据对象时会为他们打上称为MIME的数据格式标签,用于区分数据类型。最初MIME是用于电子邮件系统的,后来HTTP也采用了这一方案。(也通常称为或类型)是一种标准,用来表示文档、文件或一组数据的性质和格式。在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。原创 2024-05-18 10:40:43 · 3119 阅读 · 0 评论 -
HTTP 常见的报文头部信息
HTTP 首部字段根据实际用途被分为以下 4 种类型。原创 2024-06-19 16:20:33 · 2119 阅读 · 0 评论 -
应用层 DNS 怎样测试域名解析是否生效? ping nslookup
如果运营商强制设置了更长的域名解析记录的缓存时间,将会导致修改或删除解析记录生效的延迟,最长预计48小时,修改期间,需要保证修改前后的IP地址都能够正常提供服务。域名解析正常但是网站无法访问,需要排查搭建网站的云服务器是否正确绑定域名,或网站是否完成备案。添加域名的解析记录集后,将此解析同步至DNS服务器后才可以生效,这个过程所需要的时间就是解析生效时间。说明:使用Ping命令时,解析是否生效与域名能否Ping通没有直接联系,执行“ping 域名”命令后,的解析是否生效,执行命令。检查A类型解析是否生效。原创 2023-09-20 11:58:38 · 1892 阅读 · 0 评论 -
基础知识:HTTP协议以及GET请求和POST请求的区别
在HTTP协议中,我们最常用的是GET和POST请求,对于这两个方法,应该是最基础的东西。但是,两者的区别以及使用场景一直是大家经常讨论的问题,也是在面试中经常被问到的问题。username=xx&password=x,请求参数会暴露在浏览器中,所以是一种不安全的请求方式,多用来获取数据。一般浏览器规定GET请求的时候,HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,非常适用于分布式超媒体信息系统。GET方法的请求的时候,参数暴露在浏览器中,用户可以明显的看到参数,这是不安全的请求方式。原创 2022-11-04 18:04:21 · 6597 阅读 · 0 评论 -
HTTP 请求方法 GET/POST/PUT/DELETE
变量的值使用jsonpath语法。原创 2022-08-05 17:02:42 · 9476 阅读 · 0 评论 -
HTTP 响应行 成功类型响应码
101 Switch Protocols:协议升级使用,要保证HTTP 1.1协议广为使用,客户端支持更高的协议如websocket或者HTTP 2.0的时候,会在请求当中加上upgrade的头部,表示希望升级到websocket或者HTTP 2.0协议,如果服务器支持,那么返回101 Switch Protocols。响应码定义了许多的规范,这些规范可以指导我们的服务器去设计,但并不是所有的都遵循响应码中的规范,有些服务器可以定义新的响应码不在这些规范当中的。2xx表示成功处理的请求。..........原创 2022-08-18 08:41:36 · 1167 阅读 · 0 评论 -
HTTP 重定向 状态码3xx
http状态码301代表永久重定向。当服务器收到客户端的请求时,会将其重定向到另一个url,而不是返回请求的资源。通常用于以下情况:1、当网站的url结构发生变化或网站迁移到新的域名时。2、当网站上存在重复内容时,可以使用301状态码将所有重复的url重定向到一个主要的url。3、当网站的某个页面不再存在时,可以使用301状态码将该页面的url重定向到一个现有的页面等等。(也称为URL 转发是一种为页面、表单或者整个 Web 站点/应用提供多个 URL 地址的技术。原创 2024-05-24 14:55:09 · 2722 阅读 · 0 评论 -
HTTP 响应行 错误类型响应码
(表示代理服务器和源服务器之间出现了超时,比如上传巨大的文件或者下载巨大的文件,但是我们代理服务器类似于nginx,它配置的超时时间是一分钟,一分钟之内源服务器还没有及时的响应它,那么代理服务器就会给客户端发送504,所以返回504表示代理服务器设置的超时时间可能过小)503 Service Unavailable:服务器资源尚未准备好处理当前请求(比如服务端做请求的限速,或者对用户的IP做并发连接的限制,当达到上限的时候,都有可能发送503)例如HTTP请求格式错误。原创 2022-08-19 16:09:08 · 1638 阅读 · 0 评论 -
Nginx 413 Request Entity Too Large错误解决
在进行RAC优化之前,你应该...应用层面的优化(主要是业务的sql语句)单实例的优化操作系统的优化 首先是SQL语句的性能,之后是RAC下面每一个单实例的优化,最后是操作系统优化。上面几个都没有问题就有可能是RAC机制本身导致的性能问题。RAC的性能--第一个问题RAC究竟能否提高性能?看你怎么使用它!RAC的性能--第二个问题RAC的节点数和性能是什么关系?看你怎么使用它! 结论看...原创 2018-06-05 21:36:33 · 6863 阅读 · 1 评论 -
HTTP消息在服务端的路由 请求头 Host
大部分web服务器在建立好TCP连接之后,在蓝色的部分会去读取请求头部,不包含message body,在这里会包含两个部分,一个是request line请求行,其次是header。形式出现,而不是相对url,绝对url当中必须包含shceme,就是HTTP,还有中间的域名,authorities user information这些信息。先必须存在uri-host,对于它的port是可选的,如果有需要加冒号分隔,在HTTP 1.1规范当中必须要传递host头部,否者会返回400错误响应码。原创 2022-09-18 15:22:12 · 4012 阅读 · 1 评论 -
HTTP 持久连接 请求头 Connection: Keep-Alive 如何管理跨代理服务器的长短连接?
下面将介绍长连接和短连接的区别,以及客户端和源服务器有多个代理服务器,这些代理服务器会如何处理长连接。HTTP 连接的常见流程首先在浏览器中输入了url之后,会根据DNS这里解析出来IP地址,根据IP地址和端口号码,浏览器就会向服务器建立TCP的连接,在这个连接上就会发送一个请求,服务器必须在这个连接上返回一个响应,最后浏览器再关闭连接。上面就是一个完整的请求过程,也是一个短连接的流程。从 TCP 编程上看 HTTP 请求处理。原创 2022-09-05 10:31:53 · 4672 阅读 · 0 评论 -
HTTP 协议中的数据压缩 Accept-Encoding Content-Encoding
是提高 Web 站点性能的一种重要手段。对于有些文件来说,高达 70% 的压缩比率可以大大减低对于带宽的需求。随着时间的推移,压缩算法的效率也越来越高,同时也有新的压缩算法被发明出来,应用在客户端与服务器端。在实际应用时,web 开发者不需要亲手实现压缩机制,浏览器及服务器都已经将其实现了,不过他们需要确保在服务器端进行了合理的配置。原创 2024-06-19 17:54:16 · 2520 阅读 · 0 评论 -
应用层 HTTP 代理服务器转发消息时的相关头部 请求头 X-Forwarded-For
如果用户在家里,它的IP地址是192.168.0.x,它通过运营商进行拨号上网,运营商给它提供的公网地址为115.204.33.1,然后经过一个正向代理,这个正向代理的地址是1.1.1.1,然后再经历一个cdn,假设这个cdn的地址是2.2.2.2,然后再到后面的反向代理,如果反向代理需要拿到用户的IP地址用作负载均衡的话,115.204.33.1是一个合适的IP地址,但是反向代理是直接从tcp连接当中拿到的地址是2.2.2.2,要怎么样拿到115.204.33.1呢?,要怎么传递客户端的地址到原服务器?原创 2022-09-21 11:27:20 · 2747 阅读 · 0 评论 -
Nginx 获取客户端真实IP $remote_addr与X-Forwarded-For
nginx配置首先,一个请求肯定是可以分为请求头和请求体的,而我们客户端的IP地址信息一般都是存储在请求头里的。如果你的服务器有用Nginx做负载均衡的话,你需要在你的location里面配置X-Real-IP和X-Forwarded-For请求头: location ^~ /your-service/ { proxy_set_header X-Real-IP $remote_addr; pro原创 2020-06-09 10:24:49 · 42963 阅读 · 5 评论 -
HTTP 请求头 请求与响应的上下文 User-Agent Referer From Server Allow Accept-Ranges
http的请求与响应都有一些表示上下文常用的头部,所谓上下文就是指请求从哪里来,或者说请求 为了响应希望对后续的响应或者请求产生哪些影响。请求的上下文: User-AgentMozilla/5.0WOW64;rv:66.0)Gecko/20100101Firefox/66.0这个是Firefox发出的一个请求,中间包含三个部分,第一个部分是Mozilla/5.0,表示浏览器兼容Mozilla版本的,这是现在所有浏览器都遵循的一个结构,后面是comment,注释。原创 2022-10-09 11:40:33 · 1196 阅读 · 0 评论 -
HTTP cookie格式与约束
" sane-cookie-date(这个cookie可以使用多久,会明确指定一个日期,超过这个时间点之后,这个cookie就作废,这样就要求浏览器将这个cookie清除掉)可能有多个set-cookie头部,但是只有一个cookie头部就可以了,因为cookie可以存放多个cookie-pair。"Set-Cookie:" SP set-cookie-string 所有头部这块都一样。原创 2023-02-22 16:59:17 · 2124 阅读 · 0 评论 -
HTTP 协议必知必会 无状态/Cookie Session
在开始学习 Web 容器之前,我想先问你一个问题:HTTP 和 HTML 有什么区别?为什么我会问这个问题?你可以把它当作一个入门测试,检测一下自己的对 HTTP 协议的理解。因为 Tomcat 和 Jetty 本身就是一个“HTTP 服务器 + Servlet 容器”,如果你想深入理解 Tomcat 和 Jetty 的工作原理,我认为理解 HTTP 协议的工作原理是学习的基础。如果你对这个问题还稍有迟疑,那么请跟我一起来回顾一下 HTTP 协议吧。HTTP 的本质HTTP协议是....转载 2020-09-24 10:15:22 · 488 阅读 · 0 评论 -
HTTP 浏览器缓存 缓存的工作原理
后面想要再次发起请求的时候,会先去判断浏览器当中的缓存是否过期了,因为在响应当中明确的指出js css只能存在几天,几个小时,之后就必须到服务器获取,如果没有过期,那么就直接使用本地的缓存。request发出请求到web server发出的响应,其中这个响应当中可以得到一些信息,告诉我们这个响应是可以被缓存的,接下来缓存到本地的浏览器的缓存当中。缓存其实是在时间维度上面的缓存,第一个请求缓存了,那么为后续的请求就可以使用第一个请求缓存住的响应。这个时候浏览器客户端就知道了,直接使用缓存中的过期响应就行了。原创 2023-03-16 22:44:37 · 2780 阅读 · 0 评论 -
HTTP 响应头Cache-Control
需要注意的是,在max-age指定的时间之内,浏览器不会向服务器发送任何请求,包括验证缓存是否有效的请求,也就是说,如果在这段时间之内,服务器上的资源发生了变化,那么浏览器将不能得到通知,而使用老版本的资源。如果设置了public,表示该响应可以在浏览器或者任何中继的Web代理中缓存,public是默认值,即Cache-Control:max-age=60等同于Cache-Control:public, max-age=60。当前的所有浏览器都支持 Cache-Control,因此,使用它就够了。原创 2023-09-21 11:23:20 · 957 阅读 · 0 评论 -
HTTP 缓存新鲜度 Cache-Control:max-age
当客户端发起一个请求时,缓存检索到已有一个对应的陈旧资源(缓存副本),则缓存会先将此请求附加一个If-None-Match头,然后发给目标服务器,以此来检查该资源副本是否是依然还是算新鲜的,若服务器返回了 304 (Not Modified)(该响应不会有带有实体信息),则表示此资源副本是新鲜的,这样一来,可以节省一些带宽。有些内容是不怎么相对变化的,比如图片,比如js css这些,但是服务器配置这些有问题,没有考虑到带宽的优化,体验性的提升,所以没有配置描述缓存过期时间的内容。这两个时间相减*10%。原创 2023-05-04 22:01:01 · 2399 阅读 · 0 评论 -
HTTP 协商缓存 ETag、If-None-Match
(3)服务器再次收到资源请求时,根据浏览器传过来If-None-Match和然后再根据资源生成一个新的ETag,如果这两个值相同就说明资源没有变化,否则就是有变化;与Last-Modified不一样的是,当服务器返回304 Not Modified的响应时,由于ETag重新生成过,response header中还会把这个ETag返回,即使这个ETag跟之前的没有变化。(1)浏览器第一次跟服务器请求一个资源,服务器在返回这个资源的同时,在respone header加上ETag。原创 2023-09-20 17:54:54 · 894 阅读 · 0 评论 -
HTTP 什么样的响应才会被缓存?
客户端去访问,服务器端使用的是gzip编码,这个时候代理服务器上缓存的是gzip编码的内容,如果客户端2来访问的时候,那么它明确指出只能接受br算法来压缩的内容,这个时候虽然有同样的url,同样的url,这样是不可以返回的,第一次返回的响应当中有vary头部,vary头部说明必须根据content-encoding来进行,content-encoding写的是gizp,而client2里面的是br。首先将响应缓存下来,第二步将要发起一个请求的时候检查当前缓存是否可以使用缓存了的响应。原创 2023-07-20 09:10:02 · 347 阅读 · 0 评论 -
HTTP 缓存机制 强制缓存/协商缓存 Expires 和 Cache-control / Last-Modified 和 Etag
强缓存如果命中缓存不需要和服务器端发生交互,而协商缓存不管是否命中都要和服务器端发生交互,强制缓存的优先级高于协商缓存。图:首部字段 Cache-Control 能够控制缓存的行为,指令的参数是可选的,多个指令之间通过“,”分隔。Cache-Control:通过指定首部字段 Cache-Control 的指令,就能操作缓存的工作机制。Web 缓存大致可以分为:数据库缓存、服务器端缓存(代理服务器缓存、CDN 缓存)、浏览器缓存。一般应用广泛的是用 HTTP 头信息控制缓存。大致分为两种:强缓存和协商缓存,原创 2023-07-19 08:41:46 · 1102 阅读 · 0 评论 -
HTTP 协商缓存 Last-Modified,If-Modified-Since
一般来说,在没有调整服务器时间和篡改客户端缓存的情况下,这两个essay-header配合起来管理协商缓存是非常可靠的,但是有时候也会服务器上资源其实有变化,但是最后修改时间却没有变化的情况,就会影响协商缓存的可靠性。如果协商缓存没有命中,浏览器直接从服务器加载资源时,Last-Modified Header在重新加载的时候会被更新,下次请求时,If-Modified-Since会启用上次返回的Last-Modified值。浏览器第一次跟服务器请求一个资源,服务器在返回这个资源的同时,在。原创 2023-09-22 16:01:13 · 867 阅读 · 0 评论 -
传输层 HTTP cookies
HTTPcookies,通常称为cookie,存在时间特别长,但是目前整个行业对它还是存在很多误解,原因在于没有被完全理解,单纯地认为cookie是后门程序或者是病毒,忘记了它的工作原理,而在没有出现替代品之前就消失的话,很多web应用就会变的不可用。需要说明一点的是即使目前采用的session也是建立在cookie之上的。HTTP的无状态,迫使web应用首先就要解决维护状态的问题,否则服务器无法去知道两个请求是否来自于同一个浏览器。...原创 2022-07-25 16:50:58 · 339 阅读 · 0 评论 -
传输层 使用Web代理访问网站
代理服务器(proxyserver)又称为万维网高速缓存(Webcache),它代表浏览器发出HTTP请求。万维网高速缓存把最近的一些请求和响应暂存在本地磁盘中。当与暂时存放的请求相同的新请求到达时,万维网高速缓存就把暂存的响应发送出去,而不需要按URL的地址再去互联网访问该资源。...原创 2022-07-20 22:21:28 · 2950 阅读 · 0 评论