热门标签 | 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 响应消息数据格式

推荐阅读
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • golang常用库:配置文件解析库/管理工具viper使用
    golang常用库:配置文件解析库管理工具-viper使用-一、viper简介viper配置管理解析库,是由大神SteveFrancia开发,他在google领导着golang的 ... [详细]
  • 2023 ARM嵌入式系统全国技术巡讲旨在分享ARM公司在半导体知识产权(IP)领域的最新进展。作为全球领先的IP提供商,ARM在嵌入式处理器市场占据主导地位,其产品广泛应用于90%以上的嵌入式设备中。此次巡讲将邀请来自ARM、飞思卡尔以及华清远见教育集团的行业专家,共同探讨当前嵌入式系统的前沿技术和应用。 ... [详细]
  • Python 异步编程:深入理解 asyncio 库(上)
    本文介绍了 Python 3.4 版本引入的标准库 asyncio,该库为异步 IO 提供了强大的支持。我们将探讨为什么需要 asyncio,以及它如何简化并发编程的复杂性,并详细介绍其核心概念和使用方法。 ... [详细]
  • 优化ASM字节码操作:简化类转换与移除冗余指令
    本文探讨如何利用ASM框架进行字节码操作,以优化现有类的转换过程,简化复杂的转换逻辑,并移除不必要的加0操作。通过这些技术手段,可以显著提升代码性能和可维护性。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
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社区 版权所有