Java登陆第二十六天——Http
1.Java登陆第一天——Mysql安装2.Java登陆第一天——Maven入门3.Java登陆第二天——SQL之DDL4.Java登陆第二天——SQL之DML5.Java登陆第三天——SQL之DQL(一)基础查询、聚合函数、分组查询6.Java登陆第四天——SQL之DQL(二)分页查询、多表查询、自连接7.Java登陆第五天——SQL之DQL(三)子查询8.Java登陆第六天——SQL之表复制,表去重,合并查询9.Java登陆第六天——SQL之SQL(四)外连接10.Java登陆第六天——SQL之约束11.Java登陆第七天——SQL之事务12.Java登陆第七天——SQL之事务隔离13.Java登陆第八天——SQL之DCL14.Java登陆第九天——JDBC(一)DriverManager、Connection、Statement15.Java登陆第十天——JDBC(二)ResultSet16.Java登陆第十一天——JDBC(三)PreparedStatement、CLOB、BLOB17.Java登陆第十二天——网络编程(一)网络的概念18.Java登陆第十二天——网络编程(二)InetAddress、Socket19.Java登陆第十三天——网络编程(三)DatagramSocket20.Java登陆第十四天——网络编程(四)韩顺平网络编程21.Java登陆第十五天——网络编程(四)韩顺平网络编程22.Java登陆第十六天——网络编程(四)韩顺平网络编程23.Java登陆第十七天——网络编程(四)韩顺平网络编程完成24.Java登陆第十七天——正则表达式25.Java登陆第十八天——Java8之Lambda表达式26.Java登陆第十九天——HTML规范与语法27.Java登陆第二十天——HTML常用标签28.Java登陆第二十一天——CSS29.Java登陆第二十二天——JavaScript入门30.Java登陆第二十三天——JavaScript对象、JSON、事件31.Java登陆第二十四天——JavaScriptBOM、DOM32.Java登陆第二十五天——Tomcat、认识JavaWeb项目
33.Java登陆第二十六天——Http
34.Java登陆第二十六天——Servlet35.Java登陆第二十七天——多种方法Servlet映射、Content-Type36.Java登陆第二十八天——Servlet生命周期37.Java登陆第二十九天——Servlet继承关系,service和doGet的区别38.Java登陆第二十九天——ServletConfig和ServletContext39.Java登陆第二十九天——HttpServletRequest和HttpServletResponse40.Java登陆第二十九天——请求转发和响应重定向41.Java登陆第三十天——Cookie和Session42.Java登陆第三十天——域对象43.Java登陆第三十一天——Filter44.Java登陆第三十一天——监听器45.Java登陆第三十二天——AJAX和异步46.Java登陆第三十二天——前端工程化47.Java登陆第三十二天——ES6(一)let、const、模板字符串、解构表达式、箭头函数48.Java登陆第三十三天——ES6(二)reset、spread、Class类语法糖49.Java登陆第三十三天——ES6(二)浅拷贝、深拷贝50.Java登陆第三十三天——ES6(二)模块、模块化51.Java登陆第三十四天——Node.js安装、npm配置、npm命令52.Java登陆第三十四天——使用Vite创建工程化的Vue3项目53.Java登陆第三十五天——Vite+Vue3目录结构、.vue文件理解(SFC)54.Java登陆第三十五天——VUE初始页面解析55.Java登陆第三十六天——VUE3引入CSS56.Java登陆第三十六天——VUE3响应式入门、setup语法糖57.Java登陆第三十七天——VUE3插值表达式、文本渲染、属性渲染、事件绑定58.Java登陆第三十七天——VUE3响应式基础、条件渲染、列表渲染59.Java登陆第三十八天——VUE3双向绑定,监听器(侦听器)60.Java登陆第三十八天——VUE3生命周期、钩子函数、组件拼接、组件传参(组件通信)61.Java登陆第三十九天——Router路由入门62.Java登陆第三十九天——Router编程式路由,路由传参63.Java登陆第四十天——Router路由守卫64.Java登陆第四十天——Router路由守卫练习65.Java登陆第四十一天——Promise、async关键字、await关键字66.Java登陆第四十一天——Axios67.Java登陆第四十二天——Axios拦截器68.Java登陆第四十二天——跨域69.Java登陆第四十三天——Pinia70.Java登陆第四十四天——跟写微头条遇到的问题Http是一种基于TCP/IP的协议。所以,它有客户端和服务端。
Http的交互方式
客户端向服务端发送的总是请求;服务端向客户端返回的总是响应
Http的版本
- HTTP/0.9:初代目
- 单行HTTP,只能返回一个HTML页面
- HTTP/1.0:二代目
- 每次请求和响应都会建立和关闭一次连接(短链接)
- 新增了三种请求方式:GET、POST、HEAD
- 每个请求都附加了HTTP版本
- 请求和响应都包含HTTP报文头。并且响应开始时要发送状态码
- 可以传输HTML以外的文档
- HTTP/1.1:三代目
- 支持七种请求方法:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE
- 单次请求只会建立和关闭一次连接(长链接)
- 缓存技术
- 三代目服役期间更是出现了HTTPS,是一种安全加密通信的HTTP
现在最主流的依然是HTTP/1.1,尽管已经出现了HTTP/2和HTTP/3
短链接和长链接的区别
某服务器现有HTML页面如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link href="Test.css" rel="stylesheet">
</head>
<body>
<img src="finger.jpg">
<p>该HTML页面中,存在css资源Test.css</p>
<p>该HTML页面中,存在图片资源finger.jpg</p>
</body>
</html>
短链接
长链接
Http的数据格式
- 报文
- 不论是客户端向服务端发送的数据,还是服务端向客户端发送的数据,统称报文
客户端发送的总是请求报文;服务端响应的总是响应报文
在浏览器中抓取报文
F12进入开发者工具-Network(网络)
请求报文首部解析
例如上图中,请求报文行
GET /JavaWeb_war_exploded/ HTTP/1.1
请求方式 资源路径 协议及版本
-
请求报文头
- 报文头:报文值
//浏览器支持的文件类型
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*,...;
//浏览器支持的压缩格式
Accept-Encoding: gzip, deflate, br
//浏览器支持的语言
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
//长连接
Connection: keep-alive
//请求协议自动升级(自动根据服务器的请求,升级浏览器请求)
Upgrade-Insecure-Requests: 1
//主机虚拟地址
Host: localhost:8080
//用户系统信息
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
依旧是无需记忆,遇见时自行查询即可Http常见的请求头和响应头;更多的报文头
如果请求方式是POST,请求报文就有请求报文主体(默认请求方式是GET)
响应报文首部解析
例如上图中,响应报文行
HTTP/1.1 200
协议及版本 状态码
-
响应报文头
- 报文头:报文值
//响应报文主体的数据类型(浏览器根据该类型进行对应的解析)
Content-Type: text/html;charset=UTF-8
//响应报文主体的字节数(浏览器根据该数值查看是否损失数据)
Content-Length: 169
//长连接,20秒后关闭链接
Keep-Alive: timeout=20
常见的状态码(响应状态码)
状态码 | 描述 |
---|---|
200 | 请求成功,浏览器会把响应报文主体(一般是html)解析并显示到浏览器中 |
302 | 重定向 |
304 | 使用了本地缓存(HTTP/1.1的缓存技术),第二次访问相同的页面,其中一些资源会使用本地缓存 |
404 | 资源未找到 |
405 | 请求方式不允许 |
500 | 服务器内部出现错误(一般是代码异常) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~