热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JavaWeb1303Http协议

1Http协议概念



1 Http协议概念

  • 1、概念:

    • Hyper Text Transfer Protocol ,超文本传输协议
  • 2、传输协议:

    • 定义了客户端和服务端通信时,发送数据的格式
  • 3、特点:

    • 基于TCP/IP的高级协议
    • 默认端口:80
    • 基于请求/响应模型的,一次请求对应一次响应
  • 4、Http协议是无状态协议:

    • 每次请求之间互相独立,请求之间不能交互数据
  • 5、 历史版本:

    • 1.0 版本:一次请求响应都会建立新的连接
    • 1.1 版本:重复使用连接

2 请求消息数据格式(demo04)

2.0 案例


  • 1、访问路径:http://localhost:8081/login.html

JavaWeb-13-03-Http协议 - 文章图片


  • 2、提交数据进行跳转

请求行 / 请求头
JavaWeb-13-03-Http协议 - 文章图片


请求体(请求正文)
JavaWeb-13-03-Http协议 - 文章图片


2.1 请求行

请求方式 ? 请求URL ? 请求协议/版本
POST ?????/demo04 ??HTTP/1.1

JavaWeb-13-03-Http协议 - 文章图片


2.2 请求头

请求头名称:请求头值?(键值对)

JavaWeb-13-03-Http协议 - 文章图片


2.3 请求空行

空行:用来等额POST请求的请求头和请求体的

2.4 请求体(请求正文)

(只有post请求有,用来封装POST请求消息的请求参数的)

JavaWeb-13-03-Http协议 - 文章图片


2.5 请求行 请求头 请求空行 请求体的字符串格式

POST /demo04 HTTP/1.1 ???请求行
Host: localhost:8081
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
Origin: http://localhost:8081
Connection: keep-alive
Referer: http://localhost:8081/login.html
COOKIE: Webstorm-cea968cd=15dbfddb-bcc8-47cf-b809-a141f7d6475b; Idea-b0676662=b5c99ad3-c0e4-43e9-bb14-8751da57f43a; JSESSIOnID=EB8E97991EDFC3DF5AF4159D4F422596
Upgrade-Insecure-Requests: 1
???请求头
请求空行----------------------------------------------------------
username=Tom&passwprd=123 ??请求体

2.6 Http请求方式(7种)

Http请求方式共有七种,其中常用的两种:GET和POST请求
GET和POST请求的区别:
GET请求:
????请求参数在请求行中,在url后用?拼接
????请求的url长度有限制
????不逃安全
POST请求:
????请求参数在请求体中
????请求的url长度没有限制
????相对安全

2.7 请求头的内容介绍

请求头相当于浏览器高数服务器浏览器的信息

1、请求主机
???Host: localhost:8081

2、浏览器告诉服务器,浏览器的版本
???User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:81.0) Gecko/20100101 Firefox/81.0

3、告诉服务器,浏览器自身可以接收什么类型的响应数据
???Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8

4、浏览器可以支持的语言环境
???Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2

5、浏览器可以接受的压缩格式
???Accept-Encoding: gzip, deflate

6、浏览器告诉服务器,请求体的类型
???Content-Type: application/x-www-form-urlencoded

7、请求体的字节数
???Content-Length: 25

8、用来说明请求从哪里发起的,且仅仅包括协议和域名
???Origin: http://localhost:8081

9、HTTP协议连接是存活的,可以被复用
???Connection: keep-alive

10、告诉服务器,当前请求从哪里来(防盗链,统计工作)
???Referer: http://localhost:8081/login.html

11、当前页面设置的任何COOKIE
???COOKIE: Webstorm-cea968cd=15dbfddb-bcc8-47cf-b809-a141f7d6475b; Idea-b0676662=b5c99ad3-c0e4-43e9-
???bb14-8751da57f43a; JSESSIOnID=EB8E97991EDFC3DF5AF4159D4F422596

12、升级
????Upgrade-Insecure-Requests: 1

3 响应消息数据格式

推荐阅读
  • Apache Shiro 身份验证绕过漏洞 (CVE202011989) 详细解析及防范措施
    本文详细解析了Apache Shiro 身份验证绕过漏洞 (CVE202011989) 的原理和影响,并提供了相应的防范措施。Apache Shiro 是一个强大且易用的Java安全框架,常用于执行身份验证、授权、密码和会话管理。在Apache Shiro 1.5.3之前的版本中,与Spring控制器一起使用时,存在特制请求可能导致身份验证绕过的漏洞。本文还介绍了该漏洞的具体细节,并给出了防范该漏洞的建议措施。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • springboot启动不了_Spring Boot + MyBatis 多模块搭建教程
    作者:枫本非凡来源:www.cnblogs.comorzlinp9717399.html一、前言1、创建父工程最近公司项目准备开始重构,框 ... [详细]
  • 原因:在vm上装7.9到sp3,打补丁到1644,再往后别打了,就打就打不开终端了,这个是java安全问题,以下只是终端的一些命令,记录一下:在系统下查看当前的串口:lsdev-C ... [详细]
  • Spring Boot 中 Java8 LocalDateTime 序列化问题
    LoginController页面如下:publicObjectlogin(@RequestBodyUseruser){returnxxxx ... [详细]
  • JavaWeb介绍概念JavaWeb,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有javaapplet,不过使 ... [详细]
  • JavaScript中字符串转JSON或者XMLJS中经常需要将数据格式从字符串类型转换为JSON或者XML,尤其是string到JSON转换,下面简 ... [详细]
  • 基于Axis、XFire、CXF的webservice客户端调用示例
    本文介绍了如何使用Axis、XFire、CXF等工具来实现webservice客户端的调用,以及提供了使用Java代码进行调用的示例。示例代码中设置了服务接口类、地址,并调用了sayHello方法。 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • Jboss的EJB部署描述符standardjaws.xml配置步骤详解
    本文详细介绍了Jboss的EJB部署描述符standardjaws.xml的配置步骤,包括映射CMP实体EJB、数据源连接池的获取以及数据库配置等内容。 ... [详细]
  • 当我在doWork方法中运行代码时,通过单击button1,进度条按预期工作.但是,当我从其他方法(即btn2,btn3)将列表传递给doWork方法时,进度条在启动后会跳转到10 ... [详细]
  • 前端提高篇(七十):SVG基本使用、基本样式、路径path
    SVG是使用XML来描述二维图形和绘图程序的语言。SVG遵循的是xml的规范,与html5的使用有所区别SVG绘制出来的是矢量图,放大之后不会失真官方文 ... [详细]
author-avatar
fedfedfv_249
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有