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

  • 小米12尺寸长宽高(小米12多大屏幕)

    小米12尺寸长宽高(小米12多大屏幕)

  • 无法使用花呗购物(无法使用花呗购物解除)

    无法使用花呗购物(无法使用花呗购物解除)

  • 支付宝的ETC蓝牙无法激活(支付宝的etc蓝牙无法开启)

    支付宝的ETC蓝牙无法激活(支付宝的etc蓝牙无法开启)

  • 单反和微单的拍摄效果(单反和微单拍照区别)

    单反和微单的拍摄效果(单反和微单拍照区别)

  • 什么是咸鱼无货源模式(闲鱼无货源模式是什么意思)

    什么是咸鱼无货源模式(闲鱼无货源模式是什么意思)

  • 三星s8安全模式怎么手动关闭(三星s8安全模式解除不了怎么办)

    三星s8安全模式怎么手动关闭(三星s8安全模式解除不了怎么办)

  • 苹果有手写功能吗(苹果手机怎么设置手写功能)

    苹果有手写功能吗(苹果手机怎么设置手写功能)

  • 微信人脸采集失败请稍后再试(微信人脸采集失败怎么解决)

    微信人脸采集失败请稍后再试(微信人脸采集失败怎么解决)

  • 华为滤镜在哪里开(华为手机的滤镜功能在哪里)

    华为滤镜在哪里开(华为手机的滤镜功能在哪里)

  • 华为如何设置返回键在屏幕上(华为如何设置返回两次退出游戏)

    华为如何设置返回键在屏幕上(华为如何设置返回两次退出游戏)

  • 淘宝不点确认收货,多少天自动收款(淘宝不点确认收货)

    淘宝不点确认收货,多少天自动收款(淘宝不点确认收货)

  • 爱奇艺能看电视频道吗(爱奇艺能看电视吗?)

    爱奇艺能看电视频道吗(爱奇艺能看电视吗?)

  • 小米8屏幕指纹解锁不灵敏(小米8屏幕指纹版参数)

    小米8屏幕指纹解锁不灵敏(小米8屏幕指纹版参数)

  • 苹果原相机是反的怎么调(苹果原相机反色差怎么调)

    苹果原相机是反的怎么调(苹果原相机反色差怎么调)

  • iphone11费电怎么办(苹果11耗电如何)

    iphone11费电怎么办(苹果11耗电如何)

  • 微信删除好友又加回对方知道吗(微信删除好友又加回来聊天记录还能恢复吗)

    微信删除好友又加回对方知道吗(微信删除好友又加回来聊天记录还能恢复吗)

  • 无互联网连接是啥意思(无互联网连接是哪出问题)

    无互联网连接是啥意思(无互联网连接是哪出问题)

  • 华为gt手表怎么下载软件(华为gt手表怎么设置来电提醒)

    华为gt手表怎么下载软件(华为gt手表怎么设置来电提醒)

  • 华为儿童手表3怎么插卡(华为儿童手表3隐藏功能)

    华为儿童手表3怎么插卡(华为儿童手表3隐藏功能)

  • qq签名怎么恢复默认(qq签名如何恢复)

    qq签名怎么恢复默认(qq签名如何恢复)

  • 段前分页在哪里设置(段前分页与分页符有什么区别)

    段前分页在哪里设置(段前分页与分页符有什么区别)

  • iphonexr不能设置动态壁纸吗(苹果xr为什么设置不了以前的密码)

    iphonexr不能设置动态壁纸吗(苹果xr为什么设置不了以前的密码)

  • qq输入法如何设置快捷短语(qq输入法如何设置最好用)

    qq输入法如何设置快捷短语(qq输入法如何设置最好用)

  • 技嘉主板bios更新教程(技嘉主板bios更新后无法开机)

    技嘉主板bios更新教程(技嘉主板bios更新后无法开机)

  • 苹果手机连接电脑教程(苹果手机连接电脑)

    苹果手机连接电脑教程(苹果手机连接电脑)

  • 长期待摊费用一般指什么
  • 应交税金怎么算出来的
  • 计入投资收益的手续费
  • 今年成立的公司,残保金是否要申报
  • 一般纳税人转成小规模的条件
  • 产品成本核算需要经过哪些程序
  • 现金支票 差旅费
  • 已认证发票退回的流程
  • 销售产品收取的价款
  • 收到的软件退税怎么处理
  • 增值税发票如何读入金税盘
  • 增值税发票税率是星号
  • 信用减值损失借贷方向增减
  • 交通卡定额发票购买
  • 技术转让收入属于主营业务收入吗
  • 公司名下商品房交易开具发票
  • 专票红冲分录
  • 不占股权投资如何做账
  • 培训费用走账需要交税吗
  • 资产减值损失填在资产负债表哪里
  • 超过三年的坏帐损失税前扣除怎样规定?
  • 小型微利企业应纳税所得额300万
  • windows10命令提示符怎么用
  • vue播放器
  • 常见的电脑病毒危害
  • 公司注销往来账的账务处理
  • 产品试用装怎么做会计分录
  • php+mysql项目实战教程
  • 招标场地费怎么收
  • PHP:oci_field_size()的用法_Oracle函数
  • 空调安装还要收费
  • 政府奖励怎么做账
  • 完成认证后开具什么证明
  • yolov5输出参数
  • php找零
  • 关于laravel应用中的各个目录的作用,说法错误的是
  • css3知识总结
  • 转账支票适用范围
  • 进项税额计入其他流动资产
  • 小规模纳税人代收水电费税率
  • 备抵法账务处理方式
  • 毛利的计算公式为
  • 年末未分配利润减去年初未分配利润等于什么
  • 付款后发票的扩张怎么开
  • 房产税如何申请减免
  • 处置无形资产净收益计入什么科目
  • 研究开发费用加计扣除最新政策
  • 上月暂估的成本这月收到票怎么做
  • 已付款未认证发票怎么做账
  • 信息服务费也有滞纳金吗
  • 建筑施工企业购入材料怎么做账
  • 商贸公司库存商品进销存报表怎么做
  • 药品进销差价的计算公式是什么
  • 会计每个月需要打印科目余额表吗
  • 新成立公司会计未来规划
  • 分析sql语句性能实现
  • 不同数据库之间的数据一同传递
  • 利用MySQL统计一列中不同值的数量方法示例
  • 桌面快捷方式不显示图标怎么办
  • win10系统添加语言
  • linux 获取网页
  • centos6.5查看cpu信息
  • win7音频服务未响应
  • 服务器centos7
  • linux usb audio
  • 更新win8
  • win7系统无法删除打印机驱动
  • cocos2dx小游戏
  • unity开发手游
  • jquery.handleerror
  • bootstrap入门教程
  • python模块和包的区别
  • python抓取手机号软件
  • python 批量查询
  • javascript有哪些常用的属性和方法
  • js定义数据类型
  • 南京退林还耕
  • 库尔勒市税务局领导简介
  • 浙江农村医保手机上怎么缴费
  • 2010年末实现净利润390万,宣告发放现金股利40万,在计算本年未分配利润时,是否要减掉这40万?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设