post和get区别
长度 get受浏览器限制
类型 post接受更多类型
安全性 get明文传输不安全
缓存 get一般会有缓存,post不会
POST和PUT请求的区别
post来进行资源的新增
put进行数据的修改
- 常见的HTTP请求头和响应头
HTTP Request Header 常见的请求头:
语言,字符集,编码,连接类型,域名,请求的url ,user-agent
Accept-Language,Accept-Charset,Accept-Encoding,Connection,Host,referer,用户代理字符串
HTTP Responses Header 常见的响应头 :
响应时间,响应数据格式,连接类型,服务器名称,浏览器缓存机制
date ,content-type,Connection,server,cache-control
常见的 Content-Type 属性值有以下四种:
json xml form 原生表单,form-data
-
HTTP状态码304是多好还是少好 协商缓存;页面不更新,或者更新周期长,会经常产生304 过多304,网站权重下降,收录减少
-
常见的HTTP请求方法 get 检索
post 新增
put 修改
delete 删除
options 查询支持的http请求方式,嗅探跨域接口是否有访问资源权限
head 不返回请求报文 -
OPTIONS请求方法及使用场景 查询支持的http请求方式,嗅探跨域接口是否有访问资源权限
-
HTTP 1.0 和 HTTP 1.1 之间有哪些区别?
0 短连接,一次只能一个请求,即开即断,不支持断点续传
1 长连接 ,多个请求, 支持断电续传,并且在1.0基础上加了一些缓存机制, 支持更多http请求方法(put,head,options),增加了请求头字段host(可以将请求发往同一服务器下不同网站) -
HTTP 1.1 和 HTTP 2.0 的区别
2多路复用,解决了1的队头堵塞,还有请求头压缩,每次传只传请求头索引;二进制压缩请求头
服务器推送,2服务器可以未经客户端允许,向客户端推送资源,这样可以减少延迟时间 -
HTTP和HTTPS协议的区别
http明文 https ssl加秘
http不用钱 https要证书
http 跟快速,https更安全
http80 https 443端口 -
GET方法URL长度限制的原因 http并没限制其长度,是浏览器和服务器限制的,其中ie限制的最短
-
当在浏览器中输入 Google.com 并且按下回车之后发生了什么?
会先查看本地有没有dns缓存,如果没有就进行dns解析,然后存在本地,
然后获得ip地址,向服务器发送请求,获得服务器资源进行页面渲染 -
对keep-alive的理解
由于http1的短链接,很消耗性能,设置keep-alive让请求完成后,连接使用不断开 -
页面有多张图片,HTTP是怎样的加载表现?
http 会加载多次
https 多路复用会一下子加载出来 -
HTTP请求报文的是什么样的?
请求行 url
请求头 语言,连接类型,接受的内容类型,域名
请求空行
请求体 post携带的参数 -
HTTP响应报文的是什么样的?
响应行 响应状态码
响应头 响应时间,响应数据类型
响应空行
响应体 响应的数据 -
HTTP协议的优点和缺点 优点:
简单快速 每次请求只需要url和请求参数,因为不进行加秘,http服务器小,需要很快
无连接 每次请求完就断开连接
无状态 每次请求响应的数据都是完整的
灵活 接受任意类型的数据类型 ,content-type标记类型
HTTP协议具有以下缺点: 明文不安全 ;无状态不会保存客户端的信息
- URL有哪些组成部分
以下面的URL为例:
www.aspxfans.com:8080/news/index.…
HTTP协议,域名,端口号,虚拟目录, 文件名 ,请求参数
跨域因为浏览器的同源策略限制。(协议,域名,端口号)
- 与缓存相关的HTTP请求头有哪些 强缓存 expires ---------response header里的过期时间,浏览器再次加载资源时,如果在这个过期时间内,则命中强缓存。 cache-control---------当值设为max-age=300时,则代表在这个请求正确返回时间(浏览器也会记录下来)的5分钟内再次加载资源,就会命中强缓存。 协商缓存 Etag(根据etag值判断值是否修改),if-none-match(当control max过期时,发现有etag值,向服务器请求时,带上if-none-match(etag的值)) web服务器响应请求时,告诉浏览器当前资源在服务器的唯一标识(生成规则由服务器决定) 当资源过期时(使用Cache-Control标识的max-age),发现资源具有Etage声明,则再次向web服务器请求时带上头If-None-Match (Etag的值)。web服务器收到请求后发现有头If-None-Match 则与被请求资源的相应校验串进行比对,决定是否命中协商缓存; ETag和Last-Modified的作用和用法,他们的区别:
1.Etag要优于Last-Modified。Last-Modified的时间单位是秒,如果某个文件在1秒内改变了多次,那么他们的Last-Modified其实并没有体现出来修改,但是Etag每次都会改变确保了精度;
2.在性能上,Etag要逊于Last-Modified,毕竟Last-Modified只需要记录时间,而Etag需要服务器通过算法来计算出一个hash值;
3.在优先级上,服务器校验优先考虑Etag。
last-modified last-modified-slice(根据最后修改时间判断是否一致) 浏览器第一次请求一个资源的时候,服务器返回的header中会加上Last-Modify,Last-modify是一个时间标识该资源的最后修改时间; 当浏览器再次请求该资源时,request的请求头中会包含If-Modify-Since,该值为缓存之前返回的Last-Modify。服务器收到If-Modify-Since后,根据资源的最后修改时间判断是否命中缓存
1.强缓存:不会向服务器发送请求,直接从缓存中读取资源,在chrome控制台的network选项中可以看到该请求返回200的状态码; 2.协商缓存:向服务器发送请求,服务器会根据这个请求的request header的一些参数来判断是否命中协商缓存,如果命中,则返回304状态码并带上新的response header通知浏览器从缓存中读取资源; 两者的共同点是,都是从客户端缓存中读取资源;区别是强缓存不会发请求,协商缓存会发请求。