HTTP协议中 GET 和 POST的区别(全)

简介: 目录前言1. 源码探讨2. 区别前言在了解这两个的区别的同时还需要额外补充一些http协议中其他方法以此了解更加深入方法描述GET请求指定的页面信息,并返回实体主体HEAD类似于 GET 请求,返回的响应没有具体内容,用于获取报头POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改PUT从客户端向服务器传送的数据取代指定的文档的内容DELETE删除指定

前言

在了解这两个的区别的同时
还需要额外补充一些http协议中其他方法以此了解更加深入

方法 描述
==GET== 请求指定的页面信息,并返回实体主体
==HEAD== 类似于 GET 请求,返回的响应没有具体内容,用于获取报头
==POST== 向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改
==PUT== 从客户端向服务器传送的数据取代指定的文档的内容
==DELETE== 删除指定的页面
CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器
OPTIONS 允许客户端查看服务器的性能
TRACE 回显服务器收到的请求,主要用于测试或诊断
PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新

在这里插入图片描述

其中GET和HEAD被称为安全方法
因为使用GET和HEAD的HTTP请求不会产生什么修改页面的信息
而POST是不安全的方法,因为会修改其页面内容,比如页面信息的变动都是修改,比如贴吧、微博等评论,增删改这些信息都是一种变动

1. 源码探讨

为了更好的展示get例子
比如该网址https://www.baidu.com/s?wd=%E5%BE%AE%E5%8D%9A&ie=utf-8&tn=02003390_80_hao_pg
在这里插入图片描述
一个很简单的百度例子,但这个页面不可以修改,只能查询数据
通过设置他的页面信息变为get
查看其http协议中的信息
在这里插入图片描述
变为post的请求头如下
在这里插入图片描述

2. 区别

  • GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。
  • POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。

因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。

  • get 数据不安全,伴随请求地址,数据量有限
  • post 数据安全,速度慢, 数据量可以无限

post的放在请求器,get没有请求器
两者都是 name=value,只不过明文密文而已
文件上传不能使用get,请求地址应该是地址,拼接的地址也是文件名而不是文件地址

操作方式 明文密文 数据安全性 数据大小 功能
GET 明文 不安全 数据小 查询数据 查询数据
POST 两种都可 安全 大数据传输 增删改数据

get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程

GET 和 POST 本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同

相关文章
|
5月前
|
缓存 负载均衡 网络协议
HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践
面向企业网络与数据团队的代理协议选型与治理指南,基于流量特征选择HTTP或SOCKS5协议,通过多协议网关统一出站,结合托管网络降低复杂度,实现稳定吞吐、可预测时延与合规落地。
|
7月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
673 2
|
7月前
|
应用服务中间件
HTTP协议中常见的状态码
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类,常见状态码包括:101(请求已接受)、200(请求成功)、302(重定向)、400(请求错误)、401(未认证)、403(无权限)、404(资源不存在),以及500(服务器错误)、502(网关错误)、503(服务不可用)、504(网关超时)等。
364 0
|
7月前
|
网络协议 安全 网络安全
什么是HTTP协议
HTTP协议是超文本传输协议,基于TCP,规定了客户端与服务器端通信规则,但数据以明文传输,安全性低。HTTPS则通过SSL加密保障数据安全。两者默认端口不同,HTTP为80,HTTPS为443。HTTPS安全性更高,但消耗更多服务器资源。
253 0
|
7月前
|
数据采集 Web App开发 JSON
Python爬虫基本原理与HTTP协议详解:从入门到实践
本文介绍了Python爬虫的核心知识,涵盖HTTP协议基础、请求与响应流程、常用库(如requests、BeautifulSoup)、反爬应对策略及实战案例(如爬取豆瓣电影Top250),帮助读者系统掌握数据采集技能。
618 0
|
7月前
|
缓存 网络协议 UED
深度解析HTTP协议从版本0.9至3.0的演进和特性。
总的来说,HTTP的演进是互联网技术不断发展和需求日益增长的结果。每一次重要更新都旨在优化性能,增进用户体验,适应新的应用场景,而且保证了向后兼容,让互联网的基础架构得以稳定发展。随着网络技术继续进步,我们可以预期HTTP协议在未来还会继续演化。
852 0
|
Web App开发 前端开发 Java
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
线程的状态有:new、runnable、running、waiting、timed_waiting、blocked、dead 当执行new Thread(Runnabler)后,新创建出来的线程处于new状态,这种线程不可能执行 当执行thread.start()后,线程处于runnable状态,这种情况下只要得到CPU,就可以开始执行了。
891 0
|
Web App开发 前端开发
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html><head><meta http-equiv="Cont
总结和计划总是让人喜悦或镇痛,一方面以前一段时间没有荒废,能给现在的行动以信心,另一方面看到一年的时间并不能完成很多事情,需要抓紧时间。
763 0