一、常见的认证方式
常见认证方式
- BASIC认证(基本认证)
- DIGEST 认证(摘要认证)
- SSL 客户端认证
- FormBase 认证(基于表单认证)
BASIC(http 1. 0 现在基本不用)
DIGEST (http 1. 0 现在基本不用)
SSL 客户端认证
SSL 客户端认证是借由 HTTPS 的客户端证书完成认证的方式。 凭借客户端证书认证,服务器可确认访问是否来自已登录的客户端。
一般是银行等使用。
比如说大型金额往来的时候,在客户端操作,会给一个U 盾。 插上才能使用
FormBase 认证(基于表单认证)
写在代码里面的,用户提交信息,进行认证;通过Cookie 和session 的方式进行验证。
可查看http-简单的http 协议;
查看cookie 和session
二、连接
http 本来是在服务器 给四次握手断开后,就结束了。
http的长连接和短连接本质上是TCP 的长连接和短连接。
短连接
HTTP/1.0 中,默认使用的就是短连接。浏览器和服务器在四次挥手后,就中断。
再次请求,就有一次开启。所以资源多的话,就会频繁的发起http请求。
如何减少http 请求
长连接
HTTP/1.1 起,默认使用长连接。用来保持连接的正常。
Connection
Connection:keep-alive 当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接
Connection:close 代表-个Request完成后,客户端和服务器之间用于传输HTTP数据的TCP连接会关闭,当客户端再次发送Request,需要重新建立TCP连接
使用长连接示意图
长连接的优点:
- 减少了TCP 连接的重复建立和断开所造成的额外开销,减轻了服务器端的负载。
- 减少开销的那部分时间,使HTTP请求和响应能够更早的结束,这样web 页面的显示速度也就相应的提高了。
- HTTP/1.1 所有的连接默认都是持久连接。
管线化
持久连接,让多数请求以管线化的方式发送成为可能。这样发送请求不再是等待上一个请求收到响应后,在发送下一个请求。管线化可以做到同时并行发送多个请求,而不需要串行的发送请求 了
但是管线化,有个问题,就是开始以什么顺序发送的,那么接收的时候,就是什么顺序。所以,浏览器几乎不怎么使用管线化这个技术。
三、代理
web 代理
代理是一种有转发功能的应用程序,它扮演了位于服务器和客户端
“中间人”的角色,接收由客户端发送的请求并转发给服务器,同
时也接收服务器返回的响应并转发给客户端
代理,两端使用的协议都一样
在 HTTP 通信过程中,可级联多台代理服务器。请求和响应的转发
会经过数台类似锁链一样连接起来的代理服务器。转发时,需要附加
Via 首部字段以标记出经过的主机信息。
web 代理: charles; fiddler等等常用的抓包工具
代理的作用:
- 抓包
- FQ
- 匿名访问
- 过滤器
网关
网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有时客户端可能都不会察觉,自己的通信目标是一个网关。
内容协商
内容协商,说白了就是做国际化。
在国外和国内都访问google的网址;一个出现英文,一个出现中文。
内容协商机制的定义:
内容协商机制是指客户端和服务器端就响应的资源内容进行交涉然后提供给客户端最为适合的资源。内容协商会以响应资源的语言、字符集、编码方式等作为判断的基准。
key | 说明 |
---|---|
Accept | 告知服务器发送何种媒体类型 |
Accept-Language | 告知服务器发送何种语言 |
Accept-Encoding | 告知服务器采用何种编码 |
Accept-Charset | 告知服务器发送何种字符集 |
accecpt 常见的类型
text/html : HTML格式
text/plain :纯文本格式
text/xml : XML格式
text/css: css格式
image/gif :gif图片格式
image/jpeg :jpg图片格式
image/png:png图片格式
video/mpeg:视频
vedio/quicktime:视频
application/xhtml+xml :XHTML格式
application/xml : XML数据格式
application/atom+xml :Atom XML聚合格式
application/json : JSON数据格式
application/pdf :pdf格式
application/msword : Word文档格式
application/octet-stream : 二进制流数据(如常见的文件下载)
application/zip : (如常见的文件下载)
application/x-www-form-urlencoded : < form encType=””>中默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
更多常见的类型
.doc
application/msword
.dot
application/msword
.docx
application/vnd.openxmlformats-officedocument.wordprocessingml.document
.dotx
application/vnd.openxmlformats-officedocument.wordprocessingml.template
.docm
application/vnd.ms-word.document.macroEnabled.12
.dotm
application/vnd.ms-word.template.macroEnabled.12
.xls
application/vnd.ms-excel
.xlt
application/vnd.ms-excel
.xla
application/vnd.ms-excel
.xlsx
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xltx
application/vnd.openxmlformats-officedocument.spreadsheetml.template
.xlsm
application/vnd.ms-excel.sheet.macroEnabled.12
.xltm
application/vnd.ms-excel.template.macroEnabled.12
.xlam
application/vnd.ms-excel.addin.macroEnabled.12
.xlsb
application/vnd.ms-excel.sheet.binary.macroEnabled.12
.ppt
application/vnd.ms-powerpoint
.pot
application/vnd.ms-powerpoint
.pps
application/vnd.ms-powerpoint
.ppa
application/vnd.ms-powerpoint
.pptx
application/vnd.openxmlformats-officedocument.presentationml.presentation
.potx
application/vnd.openxmlformats-officedocument.presentationml.template
.ppsx
application/vnd.openxmlformats-officedocument.presentationml.slideshow
.ppam
application/vnd.ms-powerpoint.addin.macroEnabled.12
.pptm
application/vnd.ms-powerpoint.presentation.macroEnabled.12
.potm
application/vnd.ms-powerpoint.template.macroEnabled.12
.ppsm
application/vnd.ms-powerpoint.slideshow.macroEnabled.12
accept 和content-type 的区别
Http报头分为通用报头请求报头,响应报头和实体报头。
请求方的http报头结构:通用报头|请求报头|实体报头
响应方的http报头结构:通用报头|响应报头|实体报头
Accept 在请求头里面,表示(发送端)客户端希望接收的数据类型为:
image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8
Content-Type 在实体报头里,表示 (发送端)客户端||服务端发送的数据类型是:
image/png
也就是说:
希望接收的类型是image/avif,image/webp,image/apng,image/svg+xml,image/,/*;q=0.8
本次接收到的数据类型是:
image/png
再举个例子:
这个图表示:希望接收的是任意类型;
本次请求发送的数据的数据格式是:application/json
Accept-Language
首部字段 Accept-Language 用来告知服务器用户代理能够处理的自然语言集(指中文或英文等),以及自然语言集的相对优先级。可一次指定多种自然语言集
Accept-Language: zh-cn,zh;q=0.7,en-us,en;q=0.3
Accept-Encoding
Accept-Encoding 首部字段用来告知服务器用户代理支持的内容编码及内容编码的优先级顺序。可一次性指定多种内容编码。
key | 说明 |
---|---|
gzip | 由文件压缩程序 gzip(GNU zip)生成的编码格式(RFC1952),采用 Lempel-Ziv 算法(LZ77)及 32 位循环冗余校验(Cyclic Redundancy Check,通称 CRC) |
compress | 由 UNIX 文件压缩程序 compress 生成的编码格式,采用 LempelZiv-Welch 算ZW)。 |
deflate | 组合使用 zlib 格式(RFC1950)及由 deflate 压缩算法(RFC1951)生成的编码格式。 |
identity | 不执行压缩或不会变化的默认编码格式 |
Accept-Charset
Accept-Charset 首部字段可用来通知服务器用户代理支持的字符集及字符集的相对优先顺序。另外,可一次性指定多种字符集。与首部字段 Accept 相同的是可用权重 q 值来表示相对优先级。
注意:q是权重系数,范围 0 =< q <= 1,q 值越大,请求越倾向于获得其“;”之前的类型表示的内容,若没有指定 q 值,则默认为1,若被赋值为0,则用于提醒服务器哪些是浏览器不接受的内容类型文章来源:https://www.toymoban.com/news/detail-829806.html
内容协商技术有3种类型文章来源地址https://www.toymoban.com/news/detail-829806.html
- 服务器驱动协商(用的最多)
- 客户端驱动协商
- 透明协商
到了这里,关于http-长连接,短连接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!