js中get和post请求的区别以及请求报文

get请求和post请求

首先我们要知道get请求和post请求其实就是HTTP请求的两种基本方法。我们在使用的时候就会发现它们是有些区别的,最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。
在这里插入图片描述

如果详细的说呢?

详细的说get和post是由以下几条的区别的
1.GET在浏览器回退时是无害的,而POST会再次提交请求。
2.GET产生的URL地址可以被Bookmark,而POST不可以。
3.GET请求会被浏览器主动cache,而POST不会,除非手动设置。
4.GET请求只能进行url编码,而POST支持多种编码方式。
5.GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会· 被保留。
6.GET请求在URL中传送的参数是有长度限制的,而POST没有对参数的数据类型,GET只接受ASCII字符,而POST没有限制。
7.GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
8.GET参数通过URL传递,POST放在Request body中。

从本质上来说GET和POST

如果我告诉你GET和POST本质上没有区别你信吗?
picture
让我们扒下GET和POST的外衣,坦诚相见吧!
GET和POST是什么?HTTP协议中的两种发送请求的方法。
HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。
HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POS都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。
对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。
GET产生一个TCP数据包;POST产生两个TCP数据

HTTP请求报文

那么什么是HTTP请求报文呢?
简单的说就是从Web客户端发往Web服务器的HTTP报文称为请求报文(request message)。
HTTP请求报文由3部分组成(请求行+请求头+请求体):
在这里插入图片描述
请求行
请求行包含了请求方法、URL、HTTP版本三部分。这三个字段之间用空格分开。最后的"CR"(回车)和"LF"(换行)用于区分后面的首部行。
请求头(首部行)
包含了一系列首部字段。每个首部字段以属性名:属性值的形式成对出现,多个首部字段之间使用换行符和回车符分隔。最后的"CR"(回车)和"LF"(换行)用于区分后面的请求体。
请求体
请求的主体内容。一般在 POST 请求中才会使用这个字段。空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括 了要发送给 Web 服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意 的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含 文本。

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值