欢迎关注公众号 学习资料不会少

HTTP请求方法

HTTP 协议中定义了几种不同的请求命令,这些命令叫作 HTTP 方法(HTTP Method)。每个HTTP请求报文中都包含一个方法,这个方法会告诉服务器要执行什么动作,如是要获取一个Web 页面还是要删除一个文件。

HTTP 协议定义了很多与服务器交互的方法,最基本的有5种,分别是GET、HEAD, POST、PUT、 DELETE.一个URL地址用于描述一个网络上的资源,而HTTP中的 GET,POST、PUT、DELETE 就对应着对这个资源的查、改、增、删4个操作。最常见的是GET 和 POST。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。

表3-1列出了5种常见的HTTP 方法。

▼表3-1 常见的HTTP 方法

序号

方法

描述

1

GET

请求指定的页面信息并返回实体主体

2

HEAD

类似于 GET请求,只不过返回的响应中没有具体的内容,用于获取报头

3

POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件), 数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或对已有资源的修改

4

PUT

从客户端向服务器传送的数据取代指定文档的内容

5

DELETE

请求服务器删除指定的页面

3.2.1

GET方法

GET是最常见的方法,用于获取资源,常用于向服务器查询某些信息。

我们先启动Fiddler, 打开浏览器,输入

http://fanmao.mysxl.cn/, 从Fiddler中我们可以清晰地看到浏览器发出的是GET方法。如图 3-2 所示。

▲图3-2 Fiddler 查看 GET方法

打开网页一般都是用GET方法,因为要从 Web 服务器获取信息。

3.2.2

带参数的GET 方法

浏览器也可以在 GET 方法中把数据传给服务器,数据放在 URL 的问号(?) 后面。

将查询字符串参数追加到URL 末尾,以便将信息发送给服务器。这种方式叫查询字名串,或者叫 Query String,

例如,百度中某搜索URL 如下:

https://www.baidu.com/s?ie=utf-8&newi=l&mod=1&isbd=1&isid=8e7b7a240008899f&wd=%E5%8D%9A%E5%A2%E5%9B%AD%E5%B0%8F%E5%9D%A6%E5%85%8B&rsv_spt=1&rsv_iqid=0xc6716da200078907&issp=l&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8rqlang=cn&tn=baiduhome_pg&rsv_enter=0

查询字符串以“名=值”这样的形式出现,多个名值之间用字符“&”隔开。

如图3-3所示,在Fiddler 中,使用 WebForms 选项卡可以更清楚地看到GET方法中的查询字符串参数。

▲图3-3 Fiddler中的WebForms 选项卡

3.2.3

POST 方法

POST 方法通常用来把表单中填好的数据发送给服务器。如图3-4所示。

启动 Fiddler, 打开浏览器,输入

http://fanmao.mysxl.cn/, 输入用户名和密码,然后单击登录。

▲图3-4 POST方法

如图3-5所示,我们可以清晰地看到浏览器发出的是 POST方法,该方法把用户名和密码的信息发送给了服务器。

▲图3-5 Fiddler中查看POST 方法

使用 WebForms Tab 可以更清楚地看到 Body主体里面的内容。如图3-6所示。

▲图3-6 WebForms 选项卡查看Body

3.2.4

GET和POST方法的区别

GET和POST的区别主要表现在如下方面。

1.GET提交的数据会放在URL之后,以问号(?)分割URL 和传输数据,参数之间以&相连,如 EditPosts.aspx?name=test1&id=123456。POST 方法是把提交的数据放在HTTP 包的 Body中。

2.GET提交的数据大小有限制(因为浏览器对URL的长度有限制), 而POST 方法提交的数据大小没有限制。

3.GET 方式需要使用 Request. QueryString 来取得变量的值,而POST 方法通过Request. Form 来获取变量的值。

4.GET方式提交数据会带来安全问题,比如一个登录页面通过 GET 方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码。

往期精彩文章

喜报来了!凡猫学员薪资最高16K!

金融行业软件测试介绍

2020年为什么大家都开始学习自动化测试?

学习测试开发前 你需要掌握的python 代码水平

1万+软件测试人员都在学的精品课程免费送,大家别错过

http 请求_HTTP请求方法有哪些?相关推荐

  1. java http head 请求_http请求头header、请求体body、请求行介绍

    HttpServletRequest对象代表客户端的请求,当客户端通过http协议请求访问 服务器的时候,http请求头的所有信息都封装在这个对象中,通过这个对象,可以获取客户端请求的所有信息.htt ...

  2. python爬虫怎么发布请求_http请求如何在python爬虫中实现?

    最近我们会比较多的提到网页,因为这和python中的爬虫密切相关.当然,我们也会需要处理一些网页的请求.处理http的方法并不是单一的,学过urllib库的小伙伴好好思考下,其中有没有解决的办法呢?答 ...

  3. java 报文请求_http 请求报文和响应报文编写 (java socket实例)

    http 请求头由三部分组成:请求行.请求头部.请求体 GET / HTTP/1.1\r\n Host: 114.55.40.20\r\n Content-Type: text/html;charse ...

  4. java后端模拟http请求_Http请求后端

    前端 postman中 form-data.x-www-form-urlencoded.raw.binary的区别 1.form-data: 就是http请求中的multipart/form-data ...

  5. Thinkphp5.1允许uni-app的H5跨域请求接口解决方法

    Thinkphp5.1允许uni-app的H5跨域请求接口解决方法 参考文章: (1)Thinkphp5.1允许uni-app的H5跨域请求接口解决方法 (2)https://www.cnblogs. ...

  6. python post请求 上传图片_利用python模拟实现POST请求提交图片的方法

    本文主要给大家介绍的是关于利用python模拟实现POST请求提交图片的方法,分享出来供大家参考学习,下面来一看看详细的介绍: 使用requests来模拟HTTP请求本来是一件非常轻松的事情,比如上传 ...

  7. linux 服务器拦截http请求,详解Linux屏蔽浏览器上http请求警报的方法

    众所周知,在Linux系统中浏览器的页面上是不允许出现http请求的,如果出现了http请求就会发生错误,并且Linux系统会向用户发出警报.下面,U大侠小编就给大家详解Linux屏蔽浏览器上http ...

  8. pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法

    在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...

  9. 运行iis提示服务没有及时响应启动或控制请求的解决方法

    今天发现一台下载服务器的iis停止了,开启后提示服务没有及时响应启动或控制请求,应用程序池也无法启动了,经下面的方法解决了,特分享下方便需要的朋友 服务没有及时响应启动或控制请求的解决方法小结 先重启 ...

最新文章

  1. 大数据WEB工具Hue
  2. 百万奖金池!2022 全球人工智能技术创新大赛—算法挑战赛火热开启
  3. android 搭建短信平台,Android 短信SDK集成文档 | Mob文档中心
  4. 线性表:5.约瑟夫环,循环链表及其C语言实现
  5. 跨年照片墙php源码,简单效果照片墙
  6. FLEX教程:改变LIST控件项被选中的背景提示效果.
  7. 点击实现页面的跳转及跳转到同一页面的不同iframe模块(也许标题看不清楚,但是想实现功能性跳转的请看内容)...
  8. VAAI 工作原理及存储阵列支持
  9. 【托业】【新托业TOEIC新题型真题】学习笔记12-题库八-P7
  10. 如何调整gif动图的速度?1分钟在线调节gif动图速度
  11. java对象list_java 8 从一个list对象转list对象的属性
  12. 学生家乡网页设计作品静态HTML网页模板源码 广西旅游景点网页设计 大学生家乡主题网站制作 简单家乡介绍网页设计成品
  13. 手把手教你搭建一个直播服务器(Nginx+Rtsp)
  14. win10 休眠唤醒 电源_win10电脑休眠后无法唤醒解决方法(图文)
  15. 综述2 | 基于深度学习的行人重识别
  16. linux ide sata硬盘,Linux 下SATA与IDE硬盘区别
  17. 《程序员》10月精彩内容:iOS Android 10 年
  18. 计算机主机接口有哪些,电脑主机后面的那些插孔,分别是插什么的
  19. Activity与Fragment,以及Fragment与Fragment之间的数据通讯
  20. 减少AWS费用的一些边边角角

热门文章

  1. continue 与break 的区别
  2. linux mysql密码相关问题
  3. C++读取Json生成随机名字
  4. 杭电1713相遇周期
  5. 随想录(学习nxp rt1052 soc)
  6. 微软自带的浏览器Microsoft Edge不能上网的解决办法
  7. mysql mysqldump触发器备份_MySQL常用的备份工具之mysqldump
  8. python主要简介_Python的简介
  9. 新浪微博时间格式解析java_仿新浪微博格式化时间
  10. matlab anova 如何不画图,方差分析的数据处理和作图