HTTP各个参数详解

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小结:

 

 

 

 

 

 

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
curl 是一个功能强大的命令行工具,用于在终端中发送和接收 HTTPHTTPS、FTP 等请求。以下是 curl 常用参数的详细解释: - -X, --request <command>: 指定 HTTP 请求方法,常用值有 GET、POST、PUT、DELETE 等。 - -H, --header <header>: 添加请求头信息,可以在命令中多次使用以添加多个请求头。 - -d, --data <data>: 发送 POST 请求时附加的数据,可以是普通文本、JSON 格式等。 - -G, --get: 使用 GET 方法发送请求参数将附加到 URL 中。 - -i, --include: 在输出中包含响应头信息。 - -o, --output <file>: 将响应数据输出到指定的文件中。 - -s, --silent: 静默模式,不显示进度和错误信息。 - -k, --insecure: 忽略 SSL 证书验证,用于处理自签名证书或无效证书的情况。 - -u, --user <user:password>: 指定用户名和密码,用于进行身份验证。 - -A, --user-agent <string>: 设置请求中的 User-Agent 头部信息。 - -c, --cookie <name=value>: 发送 cookie 数据。 - -e, --referer <URL>: 设置请求中的 Referer 头部信息。 - -L, --location: 跟随重定向,自动跳转到新的 URL 地址。 - --limit-rate <rate>: 限制下载或上传速率。 - --proxy <host:port>: 使用指定的代理服务器进行请求。 - --compressed: 请求返回的数据进行压缩。 - --insecure: 忽略 SSL 证书验证。 除了上述参数,curl 还有很多其他选项可供使用,可以通过运行 `curl --help` 或查阅 curl 的官方文档来获取更多详细信息。 希望这些解释对您有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值