在web目录下创建login.html:

文章插图
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>用户登录</title></head><body><h1>用户登录</h1><!--给LoginServlet发送get请求--><form action="http://localhost:8080/http/login" method="get">u:<input type="text" name="username"/><br/>p:<input type="password" name="pwd"/><br/><input type="submit" name="用户登录"/><input type="reset" name="重置"/></form></body></html>
点击redeployTomcat
文章插图
在浏览器中打开调试台(f12) , 点击网络 。在地址栏输入:
http://localhost:8080/http/login.html
,回车 。在login.html的框中输入信息,点击登录,调试台显示如下:

文章插图
点击第一个请求,查看请求头:

文章插图
4.HTTP请求包分析(POST)在上面的基础上修改login.html文档的提交方式为 post

文章插图
redeployTomcat,然后在浏览器中打开调试台(f12) , 点击网络 。
在地址栏输入:
http://localhost:8080/http/login.html
并回车 。在login.html的框中输入信息,点击登录,调试台显示如下:

文章插图
点击第一个请求,查看请求头:可以发现请求行中已经没有用户提交的数据了

文章插图
在请求按钮下面可以看到用户请求的表单数据:其实原始的post请求是包含该数据的,只是浏览器将其分开了

文章插图

文章插图
补充:
- content-type中的x-www-form-urlencoded:表示我们的表单数据是url编码
url编码是一种浏览器用来打包表单输入的格式 。浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器
例如:表单输入中文符号提交,在表单数据中可以看到url编码如下:
文章插图
解码后显示:
文章插图
- content-length表示发送的数据长度,这里的数据为表单数据,告诉服务器要按多少个字节来读取
- form标签method=get
- a 标签
- link标签引入css[以get方式来获取资源]
- script标签引入js文件 [以get方式来获取资源]
- img标签引入图片
- iframe引入html页面
- 在浏览器地址栏中输入地址后敲回车
例子

文章插图
5.2POST请求
- form标签method=post
- 传输的数据大小区别
- get传送的数据量比较小,不能大于2KB(不同的浏览器不一样)
- post传输的数据量比较大,一般默认不受限制
- 什么情况下使用post请求
- post请求是会在浏览器上隐藏参数部分的,在安全要求的部分都会使用到post请求,如用户登录等 。这样不会通过你的请求暴露你的参数格式
- 在向服务器传递数据较大的时候,使用post(get有限制),比如发帖,上传文件
- 什么情况下使用get请求
- 在前台页面展示,比如分页内容,可以保留传递参数;也可用来分享和传播,而在post中链接地址是不变的
文章插图
文章插图
- 在前台页面展示,比如分页内容,可以保留传递参数;也可用来分享和传播,而在post中链接地址是不变的
- get方式的安全性较post要差些 。包括机密信息的话就使用post
- 在做数据查询时,建议使用get方式;而在做数据加入,改动和删除时,建议用post方式
推荐阅读
- ABAP 调用HTTP上传附件
- 真正“搞”懂HTTP协议03之时间穿梭
- 网络协议之:redis protocol 详解
- FHE学习笔记 #2 多项式环
- .NET性能优化-是时候换个序列化协议了
- 【lwip】10-ICMP协议&源码分析
- 【lwip】09-IPv4协议&超全源码实现分析
- GNN 101
- 概念+协议的了解+OSI七层模型,TCP/IP五层协议,网络数据传输流程 Linux--网络基础
- netty系列之: 在netty中使用 tls 协议请求 DNS 服务器