位置: IT常识 - 正文

day14-HTTP01

编辑:rootadmin
HTTP协议 1.什么是HTTP协议? 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用广泛的一种网络协议。是工作在tcp/ip协议基础上的,所有的www文件都遵守这个标准 http1.0 短连接 http1.1 长连接 HTTP是TCP/IP协议的一 ... HTTP协议1.什么是HTTP协议?超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用广泛的一种网络协议。是工作在tcp/ip协议基础上的,所有的www文件都遵守这个标准http1.0 短连接 http1.1 长连接HTTP是TCP/IP协议的一个应用层协议,HTTP也是我们web开发的基础

推荐整理分享day14-HTTP01,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

HTTP请求头大全 - 常用参考表对照表

HTTP状态码大全 - 常用参考表对照表

2.快速入门HTTP协议2.1使用Chrome抓取http请求和相应数据包

快捷键ctrl+shift+i或者f12

浏览器请求资源的UML图详见Tomcat01-3.9浏览器访问web服务器过程详解

2.2页面请求次数分析

如下,新建一个web项目,在web文件夹中编写test.html文件

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>http请求的问题</title></head><body><h1>图片</h1><img src="" width="300px"><img src="" width="300px"></body></html>

当浏览器访问test.html页面时,一共发出了几次请求?

答:一共发出了三次请求。

第一次请求的是test.html文件当浏览器解析发现tese.html中还有<img src="" width="300px"> <img src="">时会向服务器继续发送请求,要1.png和2.png图片的资源,一共三次请求

验证

启动Tomcat服务器,在浏览器中按f12打开控制台:

可以看到浏览器一共请求了三次,第一次是html,后两次是jpg图片

favicon.ico是网站的图标,每次都会默认请求,这里忽略

3.HTTP请求包分析(GET)

演示:HTTP请求(GET)-有数据提交情况

新建一个java项目,添加web支持,导入servlet-api的jar包,创建Tomcat。

在src目录下创建LoginServlet,给页面返回数据

package li.servlet;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.annotation.*;import java.io.IOException;import java.io.PrintWriter;/** * LoginServlet */@WebServlet(urlPatterns = {"/login"})public class LoginServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //服务器端输出 System.out.println("LoginServlet doGet() 被调用"); //输出一句话,返回给浏览器 //1.通过response获取一个流PrintWriter,可以给浏览器回复数据 //2.为了让浏览器显示中文,需要设置编码为utf-8 //(1)给回送的数据设置编码 (2)text/html这个是MIME,即告诉浏览器返回的数据是 //text类型下的html格式数据[MIME类型](3)charset=utf-8给数据设置编码 //注意:设置编码要在 response.getWriter()之前,否则无效 response.setContentType("text/html;charset=utf-8"); PrintWriter writer = response.getWriter(); writer.print("<h1>登录成功~</h1>"); //为了确保数据返回,可以调用flush()和close() //flush()表示将缓存的数据进行刷新 writer.flush(); //close()表示关闭流,有些语言是close方法中就包含了flush方法 writer.close(); //建议调用flush()和close() } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //服务器端输出 System.out.println("LoginServlet doPost() 被调用"); //输出一句话,返回给浏览器 //1.通过response获取一个流PrintWriter,可以给浏览器回复数据 //2.为了让浏览器显示中文,需要设置编码为utf-8 //(1)给回送的数据设置编码 (2)text/html这个是MIME,即告诉浏览器返回的数据是 //text类型下的html格式数据[MIME类型](3)charset=utf-8给数据设置编码 //注意:设置编码要在 response.getWriter()之前,否则无效 response.setContentType("text/html;charset=utf-8"); PrintWriter writer = response.getWriter(); writer.print("<h1>POST登录成功~</h1>"); //为了确保数据返回,可以调用flush()和close() //flush()表示将缓存的数据进行刷新 writer.flush(); //close()表示关闭流,有些语言是close方法中就包含了flush方法 writer.close(); //建议调用flush()和close() }}

在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的框中输入信息,点击登录,调试台显示如下:

day14-HTTP01

点击第一个请求,查看请求头:

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表示发送的数据长度,这里的数据为表单数据,告诉服务器要按多少个字节来读取

5.GET请求和POST请求到底有哪些?5.1GET请求form标签method=geta 标签link标签引入css [以get方式来获取资源]script标签引入js文件 [以get方式来获取资源]img标签引入图片iframe引入html页面在浏览器地址栏中输入地址后敲回车

例子

5.2POST请求form标签method=post5.3HTTP请求中怎么样选择get和post请求

在大多数情况下不需要考虑这个问题,因为业务本身就会自动区别

传输的数据大小区别

get传送的数据量比较小,不能大于2KB(不同的浏览器不一样)post传输的数据量比较大,一般默认不受限制

什么情况下使用post请求

post请求是会在浏览器上隐藏参数部分的,在安全要求的部分都会使用到post请求,如用户登录等。这样不会通过你的请求暴露你的参数格式在向服务器传递数据较大的时候,使用post(get有限制),比如发帖,上传文件

什么情况下使用get请求

在前台页面展示,比如分页内容,可以保留传递参数;也可用来分享和传播,而在post中链接地址是不变的

建议:

get方式的安全性较post要差些。包括机密信息的话就使用post在做数据查询时,建议使用get方式;而在做数据加入,改动和删除时,建议用post方式
本文链接地址:https://www.jiuchutong.com/zhishi/311693.html 转载请保留说明!

上一篇:phpcms是收费的么(phpcms 用的是什么模板引擎)

下一篇:详解如何在JavaScript中使用三元运算符(java sc)

  • 骁龙730g相当于什么处理器(骁龙730G相当于A几)

    骁龙730g相当于什么处理器(骁龙730G相当于A几)

  • iphone xs max屏幕发黄怎么办(iphonexsmax屏幕死机)

    iphone xs max屏幕发黄怎么办(iphonexsmax屏幕死机)

  • 苹果手机怎么定闹钟(苹果手机怎么定位老公手机)

    苹果手机怎么定闹钟(苹果手机怎么定位老公手机)

  • 微信收藏为什么换了手机就看不到了(微信收藏为什么不见了)

    微信收藏为什么换了手机就看不到了(微信收藏为什么不见了)

  • 如何隐藏qq空间入口(如何隐藏qq空间浏览记录)

    如何隐藏qq空间入口(如何隐藏qq空间浏览记录)

  • 2g手机能用4g卡吗(2g手机能用4g卡流量嘛)

    2g手机能用4g卡吗(2g手机能用4g卡流量嘛)

  • wps怎么空两格(wps怎么空两格一段都动了)

    wps怎么空两格(wps怎么空两格一段都动了)

  • qq视频可以美颜吗(微信视频可以美颜吗怎么设置)

    qq视频可以美颜吗(微信视频可以美颜吗怎么设置)

  • nfo文件是字幕吗(nfo文件是什么)

    nfo文件是字幕吗(nfo文件是什么)

  • 手机开热点可以投屏吗(手机开热点可以用wifi吗)

    手机开热点可以投屏吗(手机开热点可以用wifi吗)

  • 屏幕使用时间错误(屏幕使用时间错乱)

    屏幕使用时间错误(屏幕使用时间错乱)

  • 显卡能升级吗(显卡能升级吗需要什么条件)

    显卡能升级吗(显卡能升级吗需要什么条件)

  • cpu时间长了性能会下降吗(cpu使用时间长)

    cpu时间长了性能会下降吗(cpu使用时间长)

  • 魅族m1metal是什么型号(魅族m1metal价格 参数)

    魅族m1metal是什么型号(魅族m1metal价格 参数)

  • 编解码器缺失或不可用什么意思(缺少编解码器 0xc004f011)

    编解码器缺失或不可用什么意思(缺少编解码器 0xc004f011)

  • 苹果x耳机接口在哪里(苹果x耳机接口型号)

    苹果x耳机接口在哪里(苹果x耳机接口型号)

  • 拼多多修改绑定手机号(拼多多修改绑定手机号码)

    拼多多修改绑定手机号(拼多多修改绑定手机号码)

  • 大麦网怎样买3张连坐票(大麦网怎么买3张票)

    大麦网怎样买3张连坐票(大麦网怎么买3张票)

  • ipadpro有3dtouch吗(ipadpro2020有没有3dtouch)

    ipadpro有3dtouch吗(ipadpro2020有没有3dtouch)

  • 淘宝闲鱼怎么交易(淘宝闲鱼怎么交易付款)

    淘宝闲鱼怎么交易(淘宝闲鱼怎么交易付款)

  • 苹果7怎么避免烧基带(苹果怎么避免半夜微信电话挂断)

    苹果7怎么避免烧基带(苹果怎么避免半夜微信电话挂断)

  • 为什么长图发朋友圈会模糊(很长的图发到朋友圈为什么糊了)

    为什么长图发朋友圈会模糊(很长的图发到朋友圈为什么糊了)

  • p30有人脸识别吗(p30有没有人脸识别)

    p30有人脸识别吗(p30有没有人脸识别)

  • 苹果29w充电器伤电池吗(苹果20w充电器对电池)

    苹果29w充电器伤电池吗(苹果20w充电器对电池)

  • 在Win10中,怎么查看已连接wifi密码?(在win10中怎么从edge旧ie浏览器)

    在Win10中,怎么查看已连接wifi密码?(在win10中怎么从edge旧ie浏览器)

  • 【ZED】从零开始使用ZED相机(二):打开相机+捕获图像(从 零开始)

    【ZED】从零开始使用ZED相机(二):打开相机+捕获图像(从 零开始)

  • 工资表个税多扣了账务处理递减
  • 公司旧车出售要交什么税
  • 房地产增值税抵减土地出让金
  • 车保险备注栏车船税如何记账
  • 会计账册丢失什么后果
  • 残保基金怎么算
  • 留抵税额账上比申报表多280
  • 跨年度冲红的账务处理
  • 全国统一吗?
  • 内部固定资产交易当期的合并处理,涉及出售
  • 发出材料汇总表金额怎么算
  • 购买土地什么时候缴纳契税
  • 捐赠的所得税怎么处理
  • 收入未确认可以结转成本吗
  • 租个人房子开发票税率是多少
  • 油罐车运输费用怎么算
  • 纳税人提供植物油的税率
  • 如何计算一般稳定球面腔的主要参量
  • 建筑业可以开电费发票吗
  • 外贸公司有出口退税吗
  • 年末存货怎么计算
  • 抵押房产可以买卖吗
  • 发票被盗丢失如何处理
  • Win11截图工具怎么设置快捷键
  • 硬盘的转速有什么用
  • 出售固定资产减按2%会计处理1%怎么处理
  • php bi
  • 购买房地产和买房一样吗
  • 雪山上的老鼠
  • 在暴风雪中翻译
  • 韦罗尼卡
  • 施工企业会计核算特点有哪些
  • 制造费用的工资怎么结转
  • opencv 方框识别
  • php怎么加css
  • mysql中regexp_instr函数的使用
  • 支付厂房租赁费怎么入账
  • 搅拌机属于什么费用
  • 销售返利的账务处理购买方
  • java多线程经典案例
  • mysql profiles
  • mysql字符集详解
  • 不动产的进项税额转出
  • 交易性金融资产的账务处理
  • 企业购买黄金可以避税
  • 信息采集是哪个部门负责
  • 以摊余成本计量的债权投资与以公允价值计量且其变动
  • 一般纳税人劳务费税率是多少2023
  • 本年利润总额是什么
  • 如何计算生产费用
  • 购买样品入库的账务处理
  • 汽车属于固定资产类吗
  • 所有者权益包括少数股东权益吗
  • 经纪代理代订机票差额专票抵扣
  • 小规模纳税人减按1%政策
  • 旅游饮食服务企业会计核算的特点
  • sqlserver的分页语句
  • ubuntu16.04安装拼音输入法
  • linux共享
  • ubuntu tcp
  • win8查看内存
  • mainwindow是什么程序
  • django框架结构
  • CCAssert(sm_pSharedApplication, "")导致程序闪退的原因以及解决方案
  • cocos2dx 3.17
  • linux.rpm
  • perl cgi
  • cocos2dx屏幕适配解决方案
  • nodejs快速入门
  • 搜狐畅游手游官网
  • vue_api_server
  • js使文本框失去焦点的方法
  • typescript的缺点
  • js 进阶
  • apk反编译去广告教程
  • 社保所属期起和所属期止是什么意思区别
  • 税务局风险防控形成长远
  • 地税收社保
  • 美国网购消费者个人信息保护法
  • 建筑业甲方代扣代缴增值税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设