企业网站能自己建设吗,建筑行业教育培训平台,网站推广策划内容,第一app模板免费下载一、什么是 HTTP#xff1f;—— 互联网的 快递员你有没有想过#xff0c;当你在浏览器输入www.baidu.com并按下回车时#xff0c;背后发生了什么#xff1f;为什么几秒钟后就能看到百度首页#xff1f;这一切的背后#xff0c;都离不开一个叫HTTP的 快…一、什么是 HTTP—— 互联网的 快递员
你有没有想过当你在浏览器输入www.baidu.com并按下回车时背后发生了什么为什么几秒钟后就能看到百度首页这一切的背后都离不开一个叫HTTP的 快递员 在默默工作。
HTTP超文本传输协议 就像现实中的快递系统你的浏览器是 寄件人百度服务器是 收件人而 HTTP 就是那个往返于两者之间的快递员负责把你需要的 货物网页、图片、视频等安全送达。
超文本指的是不仅能传输文字还能传输图片、音频、视频等多种格式的数据这也是 超文本 中 超 的含义。
二、HTTP 如何工作—— 快递寄送全流程HTTP 的工作流程和寄快递惊人地相似我们用 网购一本书 的场景来类比1. 建立连接打电话叫快递员上门当你在浏览器输入网址时浏览器会先和服务器建立连接就像你打电话叫快递员上门取件。早期的 HTTP 每次请求都要重新建立连接效率很低现在的HTTP/1.1支持 长连接keep-alive一次连接可以发送多个请求就像快递员一次上门取多件快递。2. 发送请求填写快递单浏览器向服务器发送请求报文相当于你填写快递单。这份 快递单 包含三部分起始行告诉服务器 要做什么请求方法、去哪里取货URL、用什么快递版本HTTP 版本。例如GET /index.html HTTP/1.1GET 表示 取货/index.html 是货物地址HTTP/1.1 是快递版本。请求头附加信息比如 收件人联系方式User-Agent告诉服务器你用的是 Chrome 还是 Firefox、货物类型Accept告诉服务器你能接收 HTML、图片等格式。请求体要发送给服务器的 货物比如表单数据GET 请求没有请求体POST 请求才有就像寄大件才需要填写货物详情。3. 处理请求仓库找货服务器收到请求后会根据 快递单 上的信息找到对应的资源比如从数据库查数据、生成动态网页这个过程就像仓库管理员根据订单找货。4. 发送响应送货上门服务器处理完请求后会返回响应报文相当于快递员把货物送到你手上。响应报文也包含三部分起始行告诉浏览器 送货结果状态码、快递版本。例如HTTP/1.1 200 OK200 表示 货物已送达OK 是状态描述。响应头附加信息比如 货物重量Content-Length、货物类型Content-Type告诉浏览器这是 HTML 还是图片。响应体实际的 货物比如 HTML 代码、图片数据浏览器会解析这些内容并显示成你看到的网页。5. 关闭连接服务结束请求响应完成后连接会关闭除非启用了长连接就像快递员送完货离开。三、核心概念HTTP 的 快递规则1. 请求方法快递的 业务类型HTTP 定义了多种 请求方法最常用的有两种方法作用类比场景特点GET获取资源去超市买东西只拿东西不付钱参数在 URL 里不安全长度有限制POST提交数据寄快递把东西交给快递员参数在请求体里相对安全可传大量数据
小提醒不要用 GET 传递敏感信息比如密码因为 URL 会被浏览器记录就像你把银行卡密码写在快递单上很容易被偷看。
2. 状态码快递的 送货结果服务器用状态码告诉浏览器请求处理结果常见的有2xx成功200 OK货物已送达请求成功。201 Created新货物已入库资源创建成功比如注册新用户。3xx重定向302 Found地址变了去新地址取货临时重定向比如网页搬家。304 Not Modified货物没变化用你手里的缓存命中不用重新下载。4xx客户端错误404 Not Found地址错误找不到货物网页不存在。403 Forbidden你没权限拿这个货物拒绝访问。5xx服务器错误500 Internal Server Error仓库着火了无法发货服务器崩溃。504 Gateway Timeout快递中转站超时服务器没及时响应。
记忆口诀2 成功、3 重定向、4 你错、5 我错。
3. 报文结构快递单的 填写规范我们用一个实际的 GET 请求报文举例看看 快递单 长什么样
GET /search?qjava HTTP/1.1 // 起始行方法URL版本
Host: www.baidu.com // 请求头服务器地址
User-Agent: Chrome/90.0.4430.93 // 请求头浏览器信息
Accept: text/html,image/webp // 请求头可接收的格式// 空行分隔头部和实体
// 请求体GET请求无实体
响应报文类似
HTTP/1.1 200 OK // 起始行版本状态码描述
Content-Type: text/html;charsetutf-8 // 响应头内容类型和编码
Content-Length: 1024 // 响应头内容长度!DOCTYPE html... // 响应体HTML代码
四、HTTPS给快递加 密码锁HTTP 传输的数据是明文的就像快递包裹没封口中途可能被人拆开偷看甚至掉包比如黑客窃取你的账号密码。为了解决这个问题出现了HTTPS超文本传输安全协议。HTTPS 相当于给 HTTP 加了一层 密码锁SSL/TLS 加密加密传输数据在传输过程中被加密只有服务器能解密就像包裹用密码锁锁上只有收件人有钥匙。身份验证确保你访问的是真正的服务器防止钓鱼网站就像快递员确认收件人身份。
小知识HTTPS 默认使用 443 端口HTTP 默认用 80 端口在浏览器地址栏会显示 小锁 图标。
五、动手实践用 Chrome 查看 HTTP 请求想亲眼看看 HTTP 请求长什么样用 Chrome 浏览器的 开发者工具 就能实现打开 Chrome按F12或右键 检查 打开开发者工具。切换到Network网络面板勾选 Preserve log保留日志。在地址栏输入https://www.baidu.com并回车就能看到所有 HTTP 请求。点击任意请求比如第一个www.baidu.com在右侧查看 Headers请求头 / 响应头和 Response响应体。通过这个工具你可以直观看到请求方法、状态码、报文内容帮你理解 HTTP 的工作原理。六、总结HTTP 为什么重要HTTP 是互联网的 交通规则所有 Web 通信浏览网页、刷视频、发消息都离不开它。理解 HTTP就像学会了 互联网的语言是学习 Java Web、前端开发的第一步。下一篇我们将学习Servlet—— 服务器端的 快递处理中心看看服务器如何接收和处理 HTTP 请求。敬请期待