HTTP的两种常用请求方式GET和POST

2021-02-22 14:16:49 浏览数 (51)

HTTP的两种常用请求方式GET和POST

HTTP:HTTP协议(HyperText Transfer),用于从万维网(WWWW:World Wide Web)服务器传输超文本到本地浏览器的传输协议。HTTP是一个基于 TCP/IP 通信协议来传递数据(HTML文件,图片文件,查询结果等)。

一、GET方法

使用 GET 方法时,查询字符串(名称或键值对)是在 GET 请求的 URL 中发送的:

/test/demo_form.php?name1=value1&name2=value2

说明

  • POST 请求不会被缓存
  • POST 请求不会保留在浏览器历史记录中
  • POST请求的URL不能被收藏为书签
  • POST 请求没有长度要求

HTTP的方法中POST向后台传输数据比较可靠,POST 方法打包信息的方式与 GET 方法基本相同,但是 POST 方法不是把信息作为 URL 中 ? 字符后的文本字符串进行发送,而是把这些信息作为一个单独的消息进行发送。Servlet 使用 doPost() 方法处理这种类型的请求。

三、GET方法与POST方法的区别

  • 在浏览器进行回退操作时,GET请求是无害的,而POST请求则会重新请求一次
  • GET请求参数是连接在URL后面的,而POST请求参数是存放在消息主体(Requestbody)内
  • GET请求因为浏览器对url长度有限制(不同浏览器长度限制不一样)对传参数量有限制,而post请求因为参数存放Requestbody内所以参数数量没有限制
  • 因为GET请求参数暴露在URL上,所以安全方面POST比GET更加安全
  • GET请求浏览器会主动缓存(Cache),POST并不会,除非主动设置
  • GET请求参数会保存在浏览器历史记录内,POST请求并不会
  • GET请求只能进行URL编码,而POST请求可以支持多种编码方式
  • GET请求产生1个Tcp数据包,POST请求产生2个Tcp数据包
  • 浏览器在发送GET请求时会将请求头(Header)和数据(Data)一起发送给服务器,服务器返回200状态码,而在发送POST请求时,会先将Header发送给服务器,服务器返回100,之后再将Data发送给服务器,服务器返回200

说明:

  • GET 请求可被缓存
  • GET 请求保留在浏览器历史记录中
  • GET 请求的URL可被收藏为书签
  • GET 请求不应在处理敏感数据时使用
  • GET 请求有长度限制
  • GET 请求只应当用于获取数据

GET 方法是默认的从浏览器向 Web 服务器传递信息的请求方法,它会产生一个很长的字符串,出现在浏览器的地址栏中。GET 方法有大小限制:请求字符串中最多只能有 1024 个字符。Servlet 

二、POST方法

使用POST方法时,查询字符串(名称或键值对)是在POST请求的HTTP消息主体重发送的:使用 doGet()方法处理这种类型的请求。

POST /test/demo_form.php HTTP/1.1
Host: runoob.com
name1=value1&name2=value2

说明

  • POST 请求不会被缓存
  • POST 请求不会保留在浏览器历史记录中
  • POST请求的URL不能被收藏为书签
  • POST 请求没有长度要求

HTTP的方法中POST向后台传输数据比较可靠,POST 方法打包信息的方式与 GET 方法基本相同,但是 POST 方法不是把信息作为 URL 中 ? 字符后的文本字符串进行发送,而是把这些信息作为一个单独的消息进行发送。Servlet 使用 doPost() 方法处理这种类型的请求。

三、GET方法与POST方法的区别

  • 在浏览器进行回退操作时,GET 请求是无害的,而 POST 请求则会重新请求一次
  • GET 请求参数是连接在 URL 后面的,而POST请求参数是存放在消息主体(Requestbody)内
  • GET 请求因为浏览器对 url 长度有限制(不同浏览器长度限制不一样)对传参数量有限制,而 post 请求因为参数存放 Requestbody 内所以参数数量没有限制 
  • 因为 GET 请求参数暴露在URL上,所以安全方面 POST 比 GET 更加安全
  • GET 请求浏览器会主动缓存(Cache),POST 并不会,除非主动设置
  • GET 请求参数会保存在浏览器历史记录内,POST 请求并不会
  • GET 请求只能进行 URL 编码,而 POST 请求可以支持多种编码方式
  • GET 请求产生1个 Tcp 数据包,POST 请求产生2个 Tcp 数据包
  • 浏览器在发送 GET 请求时会将请求头(Header)和数据(Data)一起发送给服务器,服务器返回200状态码,而在发送 POST 请求时,会先将 Header 发送给服务器,服务器返回100,之后再将 Data 发送给服务器,服务器返回200

推荐好课:HTML微课HTML+CSS基础实战HTML5新特性实战


2 人点赞