admin管理员组文章数量:1597897
http 请求报文格式:
上图有些问题,只有在post请求的时候才有body,比如这个场景:增加一个用户信息,则先通过path找到该路径(网页),然后所增加的个人信息就在body里面
响应报文:
常见四个请求方法:get,post,delete,put
get:在http0.9时,只支持get请求
作用:获取资源,没有body
post:
作用:增加或者修改资源,有body
put;
作用:修改资源,有body
get,put是幂等的,即执行多次,对服务器是没有印象的,比如获取多次用户信息,或者把某个用户的性别改为女,该多次仍未女的
delete:
作用:删除资源,没有body
head:
作用:跟get几乎一样,与get的区别,服务器不会返回body,使用场景:做下载时,要确定文件多大,看看支持不支持断点续传,多文件下载等等,用head请求一下
状态码:对结果作出类型化描述(获取成功,内容为找到等)
分类(以某数字打头的三位数):
1xx 临时性消息 100: 分段请求的响应,表示收到了分段消息,可以继续发
101:支持HTTP2(兼容性请求,请求是否支持http2)
2xx 成功: 200:获取成功,201:创建成功 ,很多把成功都归为200
3xx 重定向 301:资源永久迁移 302:资源临时迁移 304:内容没有改变
4xx 客户端错误:404: 400:参数错误 401:一般为未登录
5xx 服务器错误: 500 :一般为500
Header:
作用:HTTP消息的元数据(matedata),也可以叫做数据的属性
Host:服务器的主机地址,不是用来寻址,寻址是通过dns(域名系统)来完成,dns来查询域名所对应的IP,域名服务器返回相应的ip,然后在通过ip来找到服务器地址,这个寻址在拼接报文之后,在发送报文之前
为什么已经寻址完成还要发送域名?
服务器可能对应多个子服务器,一个IP地址可能对应四个服务器,所以在判断是哪个主机的问题的时候可能会有问题,所以在发送报文的时候来发送一个域名,来确定具体是那个主机
服务器地址一般为:域名+tcp端口
Content-Length :
作用:内容的长度(字节),因为在发送数据的过程中,不一定是文本文件,也可能是二进制文件,二进制文件可能会有换行符(反斜杠),而在读取的过程中,反斜杠是读取完成的标志,所以为了避免出现没读完的情况,加入一个长度,如果遇到反斜杠等,但是长度还没读完,就会继续往下读取
Content-Type:
作用:内容类型
分类: text/html 就是个HTML文件,用于浏览器页面响应-
application/x-www-form-urlencoded 普通表单,encoded URL格式,就是个提交的表格,如果是这样的类型,服务器就会按照表单读取body里的内容,纯文字
multipart-form-data 多部分形式,一般用于传输包含二进制内容的多项内容,带有文件的表单,可以传输纯文本,比较浪费带宽
application/json json形式,一般用于web api的响应或put,post的请求
image/jpeg/application/zip 图片
分段传输:
传输内容长度无法确定,但是在body中可以判断,如果body最后内容为0,那么就表示传完了,通过牺牲效率来保证正确传输,在服务器暂时返回足够信息时使用
Location:重定向的目标URL
User-Agent;用户代理,根据客服端的设备类型显示不同的内容,即网页不只会通过设备像素判断申请对象是手机还是电脑还是平板,还可以通过user-agent,
Range/Accpet-Ranage;指定body的内容范围,主要用于分段下载,断点续传;比如一张图片3000像素,我设置为在0-1500,就下载了一半
cookie/Set-Cookie;发送cookie和设置cookie
Anthorization;授权信息
部分其他header:
Cache
cache和buffer的区别?
Cache是缓存,这会用完以后可能还会用(并不一定会重用),在比较高的不会被回收的优秀级,比如LruCache
buffer是缓冲,都是针对工作流, 上产上游和消费下游,上游多上产给下流消费用,主要应对两种情况:上流生产过多,消费不完,储存;或者是短短时间就会大量消费,来应对大量消费,Cache是没用过的东西一定会用到,比如视频提前加载
Cache-Control:
分类:1.no-cache:服务器告诉客户端,再次使用资源资源时需要访问服务器,是否失效,可以
缓存
(1) Last-Modifide:最后一次改动文件
(1) If-Modefide-Since;从事么时间开始改变
(2)Etag:资源改变的标签
(1)If-None-Match:从何时开始改变标签
2.no-store:不能缓存
3.max-age:失效日期,在失效日期内都可以缓存
Last-Modifide:最后一次改动文件
4.public/private:客户端到服务器经过中间节点,决定中间节点是否需要缓存,资源时公共使用时,会在中间节点缓存,定制化的个性信息不会缓存
REST:
定义:一种架构风格,为HTTP进行一系列限制,但不针对于HTTP,却是在HTTP开始的,是对于整体的http系统而言的
限制条件:
Server-Client architecture:CS架构,即客户端发送消息,服务端响应
Statelessness :无状态,即第二次访问时,没有登录(没有cookie或者token),所以不能识别你的身份,http本身就符合无状态,不过http有些服务不是这样
Cacheability:可缓存,http是可以缓存的
Layered system:分层系统,指不知道服务器是不是一个服务器集群,但是客户端不知道,所以需要对客服端透明服务器集群,才直达访问的服务器
Code on demand:允许服务器在返回的数据中包含一些可执行代码
还包含如下属性:
RESTful HTTP;正确使用HTTP,没别的东西
HTTP小结:
版权声明:本文标题:HTTP各个参数详解 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1728297043a1152545.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论