超级集群第6章(HTTP协议)

一、http协议介绍1。什么是HTTP协议?http又称超文本传输协议,主要用于将超文本从服务器传输到本地浏览器,具体用途是什么?2.什么是超文本?超文本最大的特点是可以超链接文本文档或图片(超链接是指点击跳转到网页)‘http协议是基于TCP协议来传输数据的,我们现在常用的http协议的版本号是1.1’。第二,HTTP/1.1说明了HTTP 1.1版有两个要点需要说明——HTTP无连接和HTTP无状态。
2.1 HTTP无连接# http无连接是什么意思?(1)无连接是指tcp三次握手后建立的双向链路只能支持一次数据传输,即使用一次后就会断开。(2)如果用户一直处于断开状态,那么每次用户请求都会重新建立tcp的双向链路,此时访问速度有优化的空间。解决办法是在服务器端打开一个长链接。1.长链接是指在http数据传输后保持tcp链接打开,以便将来的http请求可以继续使用。2.对于长链接,需要设置服务器的keepalive选项。个人认为,应该把nginx配置文件中的keepalive改为有效。不知道具体改哪个'[root @ client ~]# vim/proc/sys/net/IP v4/TCP _ keepalive _ time #就改里面的值’有利有弊。简单看一下长链接的优缺点You : keepalive长链接模式效率更高,避免了链接建立和释放的资源开销。长时间缺少: tcp链接,很容易造成系统资源的无效占用和系统资源的浪费,所以以上配置就和自身情况一样好。2.2 HTTP无状态# HTTP无状态是什么意思?(1)官方定义:http无状态是指协议对交互场景没有记忆能力。(2)白话解释:其实http默认没有缓存功能。假设我们此时输入账号密码,刷新一次后需要重新输入# httpstateless。解决方法是什么?主要目的是让服务器具备记忆能力——现在我们常用的方法是Cookie Session’1。cookie‘cookie cookie如何工作’(1)cookie实际上是一小段文本信息,客户端向服务器请求。如果服务器需要记录用户的状态,作为对请求的响应,set-cookie将用于将用户的状态信息写入客户端的浏览器文件。(2)下次浏览器请求访问网站时,请求所请求的数据中会加入cookie信息,以代替用户对cookie的缺点’的验证。(1)由于cookies保存的数据信息存在于客户端的浏览器目录中,因此,该文件存在被篡改的风险。因此,基于cookie的机制会话。2 .会话(1)会话是记录客户端状态的另一种机制。不同之处在于,cookie存储在客户端浏览器中,而会话存储在服务器上。(2)客户端浏览器访问服务器时,服务器以某种形式将客户端信息记录在服务器上。这是会话为什么说会话是基于cookie的?# session不仅会在服务器上存储客户端信息,还会在浏览器的cookie中存储少量信息。此时,存储在cookie中的内容就相当于一把用来打开服务器相应信息的钥匙。先说下Seesion的优缺点。’优秀:解决了纯cookie可能被篡改文件的风险(即使想改也是改解锁内容,不触及真实用户信息)。缺乏:在集群环境下读取服务器存储的信息会有速度问题(存储在数据库中——硬盘不够快,存储在缓存服务器中——内存空间不够.) 3.jwt #简单粗暴,加密Cookie生成的客户端本地文件,用服务器的私钥解密#听说暂时很少用。4.会话和cookie’ (1) cookie之间的关系是一个实际和具体的东西,在http协议的头中定义。(2)会话是一个抽象的概念。为了实现中断、继续等操作,开发者将客户端与服务器的一对一交互抽象为“会话”,进而衍生出“会话状态”的概念,也就是会话的概念。(3)即session描述了一种通信会话机制,cookie只是目前实现这种机制的主流方案中的参与者,一般用来保存会话ID。
3.HTTP请求信息(请求)1。什么是URL,什么是URI URI -统一资源标识符(可以在一定规则下唯一标识一个资源)URL -统一资源定位器(一个特定的URI,URL不仅用来标识一个资源,还指出如何定位这个资源。)#跟着大佬栗子解释一波URIs和URLs的区别# URI:假设所有的html文档都有唯一的编号,记录为html:xxxx,xxxx是一串数字,也就是Html文档的ID号。这可以唯一地标识一个html文档。那么这个号码就是一个URI # URL:URL就是一个URI,它通过描述文件在哪个主机上,在哪个路径上,也就是通过定位来唯一地标识一个资源。所以——无论通过定位还是编号,我们都可以识别唯一的资源,这是URI的一个实现。URL是通过定位实现的URI #。看看https://www.zhihu.com/question/21950864 2的格式。再跟网上大佬请求请求。客户端向服务器发送HTTP请求的请求消息的格式由以下四部分组成:请求行。-请求头)-空行-请求数据get/林海峰/p/7278389.htmlhttp/1.1 #请求行-请求类型;要访问的资源;Http版本号#以下是请求的头信息GET请求的主体没有被请求的数据主机3360 www.cnblogs.com连接3360 keep-Alive Cache-Control 3360 max-age=0 upgrade-Insert-Requests 3360 1 User-Agent 3360 Mozilla/5.0(Macintosh;英特尔Mac OS X 10 _ 12 _ 6)apple WebKit/537.36(KHTML,像壁虎一样)Chrome/65 . 0 . 3325 . 181 Safari/537.36 accept : text/html,application/xhtml xml,application/XML;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip,deflate Accept-language : zh-CN,zh;Q=0.9 3。HTTP协议请求的方法’通常只有两种’ # get-请求指定的页面信息并返回实体subject # post – submit数据到指定的资源进行请求处理(如提交表单或上传文件)。数据包含在请求体中。Post请求可能导致新资源的建立和/或现有资源的修改’使用get和post的区别?'(1)参数以不同的方式组织。get提交的数据会放在url之后,以?url与传输的数据分离,参数相互连接。post将提交的数据放在http数据包的主体中,它不会显示在地址栏中。(2)传输数据大小的限制。特定于get的浏览器和服务器会限制URL的长度,所以get请求会有瓶颈。post不通过URL传输值。理论上数据不受限制,但理论终究是理论。尽量不要太大(3)明显的post比GET方法更安全。request方法请求读取网页的get请求的含义。POST附加一个命名的资源(比如一个网页)。删除删除网页。代理服务器头使用CONNECT来请求读取网页头。PUT请求存储一个用于测试的网页跟踪,并要求服务器发送回收到的请求。选项查询特定选项。
四。Response)# http协议# http响应也有四个部分,分别是:状态行-消息头-空行-响应体。状态行:消息头由HTTP版本号、状态码和状态消息组成;空行用于解释一些客户端要使用的附加信息:-\ r \ N响应文本:服务器返回给客户端的文本消息‘响应状态码的详细说明’‘我记得在编写自动化测试脚本时,经常使用状态码的概念来判断网页是否访问成功’。状态码由三位数字组成,第一位数字定义了响应的类别,分为五类:1xx:表示信息——表示请求已接收,继续处理2xx:成功——表示请求已成功接收, 理解并接受3xx:重定向-需要进一步操作才能完成请求4xx:客户端错误-请求有语法错误或请求无法实现5xx:服务器错误-服务器无法实现合法请求常见状态代码:200正常//客户端请求成功400错误请求//客户端请求有语法错误,无法被服务器理解。 401未授权//请求未授权。此状态代码必须与WWW-Authenticate头字段一起使用。403禁止//服务器收到请求,但拒绝提供服务。404未找到//请求的资源不存在,例如:输入了错误的URL。500内部服务器错误//服务器出现意外错误。503服务器不可用//服务器目前无法处理客户端的请求,过一段时间可能会恢复正常。五、HTTP协议完整工作流程‘我复制了。“谢谢”HTTP协议定义了Web客户端如何从Web服务器请求网页,以及服务器如何将网页传输到客户端。HTTP协议采用请求/响应模型。向客户端服务器发送请求消息,其中包含所请求的方法、URL、协议版本、请求头和请求数据。服务器以状态行响应,包括协议版本、成功或错误代码、服务器信息、响应头和响应数据。以下是HTTP请求/响应的步骤:1。客户端连接到Web服务器。HTTP客户端(通常是浏览器)与Web服务器的HTTP端口(默认为80)建立TCP套接字连接。2.通过TCP socket发送HTTP请求,客户端向Web服务器发送文本请求消息,一条请求消息由请求行、请求头、空行和请求数据四部分组成。3.服务器接受请求并返回HTTP响应。Web服务器解析请求并定位所请求的资源。将服务器资源的副本写入TCP套接字,并由客户端读取。响应由四部分组成:状态行、响应标题、空行和响应数据。4.释放连接TCP连接。如果连接方式为关闭,服务器主动关闭TCP连接,客户端被动关闭连接并释放TCP连接;如果连接模式是keepalive,连接会保持一段时间,在这段时间内你可以继续接收请求;5.客户端浏览器解析HTML内容。客户端浏览器首先解析状态行,并检查指示请求是否成功的状态代码。然后解析每个响应头,响应头通知后面的HTML文档和文档字符集几个字节。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并将其显示在浏览器窗口中。
比如你在浏览器的地址栏输入一个URL,按Enter后会经历以下过程:1。浏览器请求DNS服务器解析URL中域名对应的IP地址;2.解析IP地址后,根据IP地址和默认端口80建立与服务器的TCP连接;3.浏览器发送HTTP请求读取文件(URL中域名后面部分对应的文件),请求消息作为TCP三次握手的第三条消息的数据发送给服务器;4.服务器响应浏览器请求,向浏览器发送相应的html文本;5.释放TCP连接;6.浏览器显示html文本和内容;6.浏览器获取数据后,页面请求信息详细信息“基本信息-常规”请求URL : https://www.cnblogs.com/#被请求的URL请求方法: GET #被请求的方式状态代码: 200 OK #请求的状态和状态代码remote address 3360 121 . 40 . 43 . 1883360443 #被请求的远程主机的ip和端口#以下选项用于控制请求标头中的引用内容# Strict.origin表示不允许在https网站对http网站的请求中显示refferrer信息。referer Policy 3360 strict-origin-when-cross-origin ‘请求头’ authority 3360 www。Cnblogs.com #请求的域名方法: GET #请求的方法路径:/#请求的地址和文件,以及索引文件scheme: https #请求的协议# accept是请求的资源类型accept3360text/html,application/XHTML XML,application/XML;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,应用/签约-交换;v=b3Q=0.9 accept-encoding3360gzip,deflate,br # compress accept-language 3360 zh-cn,zh;Q=0.9 #字符类型cache-control3360max-age=0 #缓存时间upgrade-insert-requests 3360 1 #升级用户代理.#指示客户端信息“响应头”年龄3360 8 #当代理服务器用自己的缓存实体响应请求时,它使用此头来指示该实体自出现以来已经过了多长时间。Cache-control 3360 public,max-age=30 #表示这个页面(资源的有效时间)只能缓存30秒。内容-编码: gzip #压缩格式内容-类型3360 text/html;Charset=utf-8 #文件类型和字符集Date:mon,09aug2021 07:5:38GMT #数据返回的时间Strict-transport-security 3360 max-age=2592000;包括子域;Preload #这个选项应该是禁止http链接vary: Accept-Encoding #告诉代理服务器缓存两个版本的资源:压缩和未压缩的’ CDN服务器常用参数’ # CDN缓存是否命中X-Cache 3360 Miss TCP _ Miss dirn 3360-23360-2 #缓存号X-X-powered-by : PHP/7 . 1 . 21 # #缓存时间x-swift-cache时间3360 #保存时间X-swift-保存时间3360sat用户访问集群架构的过程(重要)1。客户端发起一个http请求,该请求将首先到达防火墙。2.防火墙识别用户身份,正常请求通过内部交换机tcp link后端负载均衡传递用户的http请求。3.负载均衡接收请求,根据请求内容发送任务,通过tcp连接后端web,转发用户的http请求。4.web收到用户的http请求后,会根据用户请求的内容进行分析。分析分为以下几种:静态请求:web直接返回负载均衡-防火墙-用户动态请求:Web与后端动态程序建立tcp连接,将用户的动态http请求传递给动态程序-动态程序会对其进行分析。5.在分析过程中,如果动态程序遇到数据库查询请求,它会首先与缓存建立tcp连接,发起数据查询操作。6.如果缓存中没有相应的数据,动态程序将再次与数据库建立tcp连接。并启动查询操作。7.最后数据组成:数据库-缓存-动态程序-web服务-负载均衡-防火墙-用户。8.http # 1的其他相关内容。SOA松耦合架构面向服务的架构(SOA)是一种组件模型,它将应用程序的不同功能单元(服务)进行拆分,并通过定义良好的接口和契约将它们连接起来。
接口是以中立的方式定义的,它应该独立于服务的硬件平台、操作系统和编程语言。这使得各个系统中构建的服务能够以统一通用的方式进行交互‘将一个服务拆分成多个小服务,方便每个小服务的迭代更新,减缓请求压力’‘如果一个服务出现问题,不会影响其他服务的正常运行’‘例如,拆分登录和注册,如果注册服务器挂机,不会影响注册用户的正常登录’# 2。websocket协议(1) websocket是基于TCP的应用层协议,用于在C/S架构应用中实现双向通信。(2)虽然websocket协议在建立连接时会使用http协议,但这并不意味着websocket是基于http实现的。详情请点击-https://www.cnblogs.com/nucccch/p/10947256.html 3号。HTTP的请求头中user-agent的中文名称是user agent,是一种特殊的字符串头。主要用于使服务器能够识别操作系统、浏览器版本等。由客户# 4使用。PV和uv有什么异同?PV(访问量)3360是PageView——页面浏览量或点击量,用户每刷新一次就计算一次UV(唯一访客):——每一个访问你网站的客户端都是访客,同一个客户端24小时只计算一次‘一个UV可以有很多PV,一个PV只能对应一个IP’。更多关于Linux架构的文章,请点击:超大型集群架构技术文档更多关于Linux架构的文章,请点击:超大型集群架构技术文档更多关于Linux架构的文章。

其他教程

盛大乐舞手游上线后,二次元成员再次想起了《毒》|优茶研究院主导的恐怖

2022-9-9 20:43:52

其他教程

多米诺倒下:货币经纪人航海家申请破产保护

2022-9-9 20:45:56

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索