欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > 每日任务:报文构成、请求类型及GET与POST差异分析

每日任务:报文构成、请求类型及GET与POST差异分析

2024/10/24 4:51:02 来源:https://blog.csdn.net/qq_59400558/article/details/140645902  浏览:    关键词:每日任务:报文构成、请求类型及GET与POST差异分析

1.HTTP请求报文和响应报文是怎样的,有哪些常见的字段?

HTTP报文分为请求报文和响应报文;

(1)请求报文主要由请求行、请求头、空行、请求体构成。

请求行包括了:

  • 请求方式:如get、post、put、delete等的方法
  • 资源路径:请求资源的URI(统一资源标识符)
  • HTTP版本:使用的HTTP协议的版本,如HTTP/1.1、HTTP/2.0

请求头的字段较多,常使用的包含以下几个:

  • Host:请求的服务器的域名。
  • Accept:客户端能够处理的媒体类型。
  • Accept-Encoding:客户端能够解码的内容编码。
  • Authorization:用于认证的凭证信息,比如token数据。
  • Content-Length:请求体的长度。
  • Content-Type:请求体的媒体类型。
  • Cookie:存储在客户端的cookie数据。
  • If-None-Match:资源的ETag值,用于缓存控制。
  • Connection:管理连接的选项,如 keep-alive。

空行是用于分隔请求头部和请求主体。

而请求体通常用于 POST 和 PUT 请求,包含发送给服务器的数据。

(2)一个标准的HTTP响应报文包含了状态行、响应头、空行、响应体

状态行包含HTTP版本、状态码和状态消息。例如:HTTP/1.1 200 OK

响应头部也是以键值对的形式提供的额外信息,类似于请求头部,用于告知客户端有关响应的详细信息。一些常见的响应头部字段包括:

  • Content-Type:指定响应主体的媒体类型。
  • Content-Length:指定响应主体的长度(字节数)。
  • Server:指定服务器的信息。
  • Expires: 响应的过期时间,之后内容被认为是过时的。
  • ETag: 响应体的实体标签,用于缓存和条件请求。
  • Last-Modified: 资源最后被修改的日期和时间。
  • Location:在重定向时指定新的资源位置。
  • Set-Cookie:在响应中设置Cookie。
  • Access-Control-Allow-Origin: 跨源资源共享(CORS)策略,指示哪些域可以访问资源。

空行(Empty Line)在响应头和响应体之间,表示响应头的结束。

而响应体是服务端实际传输的数据,可以是文本、HTML页面、图片、视频等,也可能为空。

2.HTTP有哪些请求方式?

GET

发送请求取得服务器上的某种资源,是用来查询数据,不会影响资源的内容

POST

向指定资源提交数据进行处理请求,该请求会改变数据的种类等资源,就像数据库的insert操作一样,会创建新的内容

PUT

与post类似,更新指定资源,该请求就像数据库的update操作一样,用来修改数据的内容,但是不会增加数据的种类等

DELETE

请求服务器删除指定的资源。

HEAD

获取报文首部,不返回报文主体。

OPTIONS

查询服务器支持的请求方法。

PATCH

对资源进行部分更新。

3.GET请求和POST请求的区别

  1. 用途:GET请求通常用于获取数据,POST请求用于提交数据。
  2. 数据传输:GET请求将参数附加在URL之后,POST请求将数据放在请求体中。
  3. 安全性:GET请求由于参数暴露在URL中,安全性较低;POST请求参数不会暴露在URL中,相对更安全。
  4. 数据大小:GET请求受到URL长度限制,数据量有限;POST请求理论上没有大小限制。
  5. 幂等性:GET请求是幂等的,即多次执行相同的GET请求,资源的状态不会改变;POST请求不是幂等的,因为每次提交都可能改变资源状态
  6. 缓存:GET请求可以被缓存,POST请求默认不会被缓存

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com