什么是 普通url get 请求方式。
不是ajax 请求方式吗?
前端请求都是基于http 协议就html http,这种对前端懵逼什么”普通url get 请求方式”。对于前端不就是ajax请求吗?Ajax 请求get也是一个地址栏加参数,的形式请求。Ajax 唯一的区别就是什么时候把你发那个get请求,请求是等待回来,还是不等待回来。
并没有什么 ‘普通url get 请求方式’既然基于这个http 协议 1.1 就只有get、post。
http2.0 就是多了几种请求方式 能让后端做相应操作。
http 协议 > html http协议
http 1.1 协议 提供的请求方式 主要是 get post
get 与 post 请求的区别
1、get有长度限制255bit, post 请求没有长度限制。(不重要,这个255byte 是由于服务端设计的超过就截取掉)
2、get是密码方式? & query中密码 , post 请求参数不会加在地址栏。(不重要,get在拼接参数时可以先md5进行加密)
3、get 请求性能高于post 请求。post 请求会先把请求头发过去等服务器响应返回后再把请求体发过去,会有两次网路。get请求就只会有一次网路。
4、get 请求会有缓存 post 的方式没有。
在这种使用
场景1 比如新闻列表不常更新的,这种去拿下一页的数据就应该使用get方式,因为用户可能随时翻上一页,这种情况就要请求,这是用缓存数据就可以了。如果采用post方式 没有缓存就又会去请求后台,会给后台压力大。
场景2 比如新闻列表10s一次高频更新,这种情况下就应该采用post 请求方式。也可以用get请求方式,但是自己要在后面带变量,比如时间戳,保证每次都不用缓存的
http 2.0 协议提供了更多请求方式 get post detele 等等
http1.0 和 http2.0 比较 https://www.zhihu.com/question/34074946
1、HTTP和HTTPS概念?
- HTTP:HTTP 协议(HyperText Transfer
Protocol,超文本传输协议):是客户端浏览器或其他程序与Web服务器之间的应用层通信协议 。 - HTTPS 协议(HyperText Transfer Protocol over Secure Socket
Layer):是以安全为目标的HTTP通道,即可理解 HTTP 下加入 SSL+TLS 层,HTTPS 的安全基础是
SSL,因此加密的详细内容就需要SSL/TLSL来保证了通信应用程序之间提供保密性和数据完整性。 - HTTP和HTTPS如下图:
1、HTTP和HTTPS延伸问题?
1、http运行机制?
- 浏览器首先根据域名去查找对应的 IP
地址和端口,按顺序从浏览器缓存/系统缓存/路由器缓存/DNS服务器/根域名服务器去查找域名的IP。拿到IP后向,分两种情况: - HTTP协议,则浏览器将自身的信息,封装成一个HTTP请求数据包,与服务器的80端口建立TCP连接,即TCP的三次握手:
- 建立连接后,客户机发送一个请求给服务器
- 服务器接到初次请求后,返回给浏览器一些Headers集合,例如set-cookie,Last-Mondified,Etag等等
- 服务器向发送响应数据后,将关闭TCP连接。
- 如果浏览器或者服务器在其头信息有这行代码:Connection:keep-alive。TCP连接在发送后将仍然保持打开状态,浏览器可以继续通过相同的连接发送请求。节省了为每个请求建立新连接所需的时间,还节约了网络带宽。
- 浏览器得到响应数据,开始进入渲染流程。
2、https运行机制?
- HTTPS协议与服务器的443端口连接,客户端将自身支持的加密算法列表(如SSL 的版本、加密算法和数据压缩方法/Hash算法)以及生成客户端加密随机数(client_random)一起发送给服务端,开始 SSL 握手。
- 服务器端选出的一套加密算法、压缩算法和SSL 数字证书,并生成服务端随机数(server_random),一起返回给客户端。
- 客户端浏览器开始进入数字证书认证环节,这一部分是浏览器内置的TLS完成的。
浏览器解析https认证过程:首先浏览器会从内置的证书列表中索引,找到操作系统中已内置的受信证书机构颁发的CA证书,用来与服务器发来的证书CA对比,验证证书合法性。如果证书不可信,浏览器报该证书不可信。如果可信,则使用,则浏览器会从当前操作系统中内置的CA中取出公钥,对服务器发来的证书签名进行解密得到证书内容和证书签名;内容包含网站的网址、网站的公钥、证书的有效期、证书持有者、证书颁发机构CA等。验证通过后,就可以安全使用证书中的网站公钥了。 其中涉及到知识点如下:
a) 对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密。
b) 非对称加密:加密和解密使用的是两个不同的密钥,如果用公钥对数据进行加密,只有用对应的私钥才能解密。
c) 哈希算法:又称摘要算法(Digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。
d) 签名算法:使用发送发的私钥对原始数据进行签名,只有用发送方公钥才能通过签名验证。签名算法主要有MD5withRSA/SHA1withRSA/SHA256withRSA/SHA1withDSA/SHA256withDSA/SHA512withDSA/ECDSA 。
e) 数字证书:摘要算法用来确保数据没有被篡改,非对称加密算法可以对数据进行加解密,签名算法可以确保数据完整性和抗否认性,把这些算法集合到一起,并搞一套完善的标准,这就是数字证书。
b) 证书分类:一般情况下用户收到的证书是三个证书(一个根证书、一个中间证书、一个输用户证书)或 四个证书(一个根证书、两个中间证书、一个用户证书)。
c) 证书颁发:根证书是CA 机构自己签发,CA通过根证书签发中间证书、授权中间证书颁发结构向用户签发用户证书。所以一般我们在授权网站下载的是用户证书。
- 浏览器将根据客户端随机数、服务端随机数及协议版本等信息,生成随机数 premaster_secret和主密钥master_secret,并使用公钥 对premaster_secret加密得到R,然后发送给服务端。
- 服务端用私钥解密接收到的数据,得到R。
- 服务端以R为密钥使用对称加密算法加密网页内容并传输给浏览器。
- 客户端以R为密钥使用之前约定好的解密算法获取到网页内容,浏览器客户端开始进入渲染流程。
3、HTTP与HTTPS的区别?
- http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl/tls加密传输协议。
- https协议需要到CA申请证书,,因而需要一定费用。而http不需要。
- http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
- https要比http安全。
因为http连接很简单,所有传输的内容都是以明文传输,客户端和服务器端都无法验证对方的身份,是无状态的,HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议