位置: 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)

  • 天玑1200ai版和骁龙870对比(天玑1200ai版和骁龙870谁的功耗低)

    天玑1200ai版和骁龙870对比(天玑1200ai版和骁龙870谁的功耗低)

  • 微信群头像怎么设置(微信群头像怎么变成空白人头)

    微信群头像怎么设置(微信群头像怎么变成空白人头)

  • 小米手机反向充电怎么设置(小米手机反向充电自动关闭)

    小米手机反向充电怎么设置(小米手机反向充电自动关闭)

  • 怎样在快手上找人(怎样在快手上找到同城的人)

    怎样在快手上找人(怎样在快手上找到同城的人)

  • miui11耗电快解决办法(miui11耗电量)

    miui11耗电快解决办法(miui11耗电量)

  • 华为手机微信置顶语怎么设置(华为手机微信置顶怎么取消)

    华为手机微信置顶语怎么设置(华为手机微信置顶怎么取消)

  • 我国手机号为什么是11位数(为什么我国的手机号都是11位?)

    我国手机号为什么是11位数(为什么我国的手机号都是11位?)

  • 华为共享热点在哪(华为共享热点在哪里找)

    华为共享热点在哪(华为共享热点在哪里找)

  • win7卡在应用系统设置要多久(win7系统应用程序已停止工作怎么解决)

    win7卡在应用系统设置要多久(win7系统应用程序已停止工作怎么解决)

  • 快手怎么弄置顶作品(快手怎么弄置顶作品图片)

    快手怎么弄置顶作品(快手怎么弄置顶作品图片)

  • 针式打印机打印不完整(针式打印机打印出来一半有一半没有)

    针式打印机打印不完整(针式打印机打印出来一半有一半没有)

  • oppor17悬浮球有什么作用(oppo手机悬浮球有什么用处)

    oppor17悬浮球有什么作用(oppo手机悬浮球有什么用处)

  • qq好友被对方删除 自己怎么知道(qq好友被对方删除 自己怎么恢复)

    qq好友被对方删除 自己怎么知道(qq好友被对方删除 自己怎么恢复)

  • 抖音发私信有限制吗(抖音私信数量限制与什么有关)

    抖音发私信有限制吗(抖音私信数量限制与什么有关)

  • 手机倒充电怎么回事(手机倒充电怎么恢复)

    手机倒充电怎么回事(手机倒充电怎么恢复)

  • 荣耀20s锁屏样式怎么改(荣耀20锁频壁纸怎样设置)

    荣耀20s锁屏样式怎么改(荣耀20锁频壁纸怎样设置)

  • OPPO k5是不是升降摄像头(oppok5能升级coloros12吗)

    OPPO k5是不是升降摄像头(oppok5能升级coloros12吗)

  • skra0是黑鲨几代(黑鲨skra0是什么机型)

    skra0是黑鲨几代(黑鲨skra0是什么机型)

  • 苹果无线耳机下一曲怎么按(苹果无线耳机下面的网掉了)

    苹果无线耳机下一曲怎么按(苹果无线耳机下面的网掉了)

  • word2007如何生成目录(word文档制作生成)

    word2007如何生成目录(word文档制作生成)

  • 电脑ie浏览器怎么修复(电脑ie浏览器怎么设置兼容模式)

    电脑ie浏览器怎么修复(电脑ie浏览器怎么设置兼容模式)

  • 苹果6怎么把通讯录导入sim卡(苹果6怎么把通讯录导入手机)

    苹果6怎么把通讯录导入sim卡(苹果6怎么把通讯录导入手机)

  • 怎么把cad的图复制到word(怎么把cad的图复制出来)

    怎么把cad的图复制到word(怎么把cad的图复制出来)

  • 操作系统的设备管理(运行网络操作系统的设备)

    操作系统的设备管理(运行网络操作系统的设备)

  • PasSrv.exe - PasSrv是什么进程 有什么用

    PasSrv.exe - PasSrv是什么进程 有什么用

  • CNN中的底层、高层特征、上下文信息、多尺度(cnn三层)

    CNN中的底层、高层特征、上下文信息、多尺度(cnn三层)

  • aisino金税盘怎么安装在电脑上
  • 印花税纳税义务人有哪些
  • 医院要交什么费用
  • 发票没有纳税人识别号能开吗
  • 新税法讲课费如何代缴个税
  • 行政单位要考什么
  • 接受捐赠材料需要交税吗
  • 递延收益涉税
  • 期末账项调整的类型
  • 定额材料损耗率国家标准
  • 村集体经济组织法
  • 房屋维修专用发票图片
  • 没有发票的费用计入什么科目
  • 给职工买的意外险怎么做账
  • 待认证进项税额是什么情况下用的
  • 兼职取酬案例剖析
  • 上级工会返还的会计分录
  • 成本控制的基本原则包括
  • 企业的其他业务是什么
  • 企业财务内部控制的主要内容有哪些
  • 同一控制亏损企业怎么算
  • 公司的房产税如何征收
  • 华为授权查询系统
  • 公司筹建期间发生的业务招待费,如何税前扣除
  • 资产评估报告包括
  • 商贸公司如何结算成本
  • php输出二进制
  • php技术基础知识
  • 印花税怎么核算的
  • 短期借款会计分录例题
  • 命令行基础
  • 海运发票模板
  • 超分辨率图像复原
  • 小规模企业购入固定资产怎么做账务处理
  • 用友的应付单和付款单的区别各是什么时候填制
  • echarts-gl
  • 工会经费计提基数包括绩效工资吗
  • html流光按钮
  • 前端框架三大框架
  • 使用nvm安装nodejs后无法执行node命令
  • vue该怎么学
  • php实现批量删除
  • 带有折扣的增值税怎么算
  • 生产型企业出口退税会计分录
  • 除财政部门外,审计税务人民银行
  • 织梦dedecms如何升级ckeditor
  • phpcms 生成首页
  • 如果没有抄税就申报了
  • 小卖部铺货首次送货流程
  • 工程服务费会计怎么做账
  • 免抵退不得抵扣税额什么意思
  • 冲销以前年度多计提的费用分录
  • 工资挂账怎样做账
  • 帮别的公司付款后发票该给谁开
  • 小规模取得增值税专用发票怎么做账
  • 汇率调节主要手段
  • 营业收入影响资产负债表哪些项目
  • 学校固定资产账记法
  • mysql高级功能
  • MySQL 5.5.x my.cnf参数配置优化详解
  • fcitx输入法配置
  • 淘宝pc端打不开
  • win10执行数据保护如何开启
  • linux make命令怎么用
  • xp系统怎么弄成win7
  • linux系统中文件权限分为哪三种
  • 电脑界面显示windows
  • win8.1应用
  • Linux mysql如何更改root密码以及忘记root密码的修改方法
  • jquery 使用
  • django在window部署
  • perl常用函数
  • dos改时间
  • 批处理列出文件名
  • js鼠标拖动窗口的做法
  • qpython pydroid
  • 土地增值税清算时间要求
  • 被标记为广告推销的电话能接吗
  • 江苏省个人社保参保证明打印
  • 异辛烷征收消费税对成品油影响
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设