http 全称 Hyper Text Transfer Protocol,中文叫做超文本传输协议,简单理解就是浏览器和网站服务器之间沟通的一套统一规则,我们平时打开网页,浏览器发出请求,服务器返回网页图片代码这些资源,整个通信过程都按照 http 这套标准来执行,很多新手会把 http 和 html 弄混,html 是网页本身的代码内容,http 是负责搬运传输这份内容的通信协议,http 属于互联网应用层协议,采用一问一答的请求响应模式,客户端主动发起请求,服务器收到之后给出响应,原生 http 是明文传输,默认端口是 80,本身没有记忆能力也就是无状态,现在大家经常见到的 https,就是在 http 基础上增加加密,安全性更高,是目前主流使用的升级版本,下面详细介绍 http 基础特点工作流程和核心知识点。
http 基础信息对照表
| 项目 | 内容 |
|---|---|
| 英文全称 | Hyper Text Transfer Protocol |
| 中文名称 | 超文本传输协议 |
| 协议层级 | 应用层协议 |
| 通信模式 | 请求响应 |
| 默认端口 | 80 |
| 原生特点 | 明文传输 无状态 |
http 工作简单流程
第一步 用户在浏览器输入网址,浏览器构造 http 请求报文
第二步 请求通过网络发送到对应的网站服务器
第三步 服务器解析请求,查找对应的网页资源
第四步 服务器生成 http 响应报文,把资源返回给浏览器
第五步 浏览器解析响应内容,渲染出我们看到的网页页面
http 核心特点
请求响应 永远是客户端先发起请求,服务器被动应答,不会服务器主动推送消息给客户端
无状态 每一次 http 请求互相独立,服务器默认不会记住上一次请求是谁,想要保存登录状态,需要搭配 cookie session
明文传输 数据在网络传输的时候没有加密,中途有可能被截获读取,所以才推出加密版本 https
支持多种请求方法 常用 get 用来获取网页资源,post 用来提交表单数据,还有 put delete 等方法
状态码反馈 服务器会用数字状态码告诉客户端结果,比如 200 代表成功,404 代表找不到页面,500 代表服务器内部错误
http 和 https 区分
http 是明文,不加密,端口 80
https 是 http 加上 tls 加密,数据加密传输,端口 443,防窃听篡改,现在绝大多数网站默认使用 https
补充说明
http 不是编程语言,也不是网页代码,它只是通信规则,只要是 web 相关应用,比如接口请求小程序后台调用,底层很多都是基于 http 协议,是互联网最基础的协议之一,也是计算机网络和前端入门必考知识点。
【常见问题】
问题 1 http 是编程语言吗
回答 1 http 不是编程语言,http 是超文本传输协议,http 作用是规定浏览器和服务器通信规则,不要把 http 和 html 代码混淆。
问题 2 http 为什么是无状态
回答 1 http 设计本身就是无状态,http 每一次请求独立,http 不会自动保存用户会话信息,需要借助 cookie 实现状态保存。
问题 3 http 和 https 有什么差别
回答 1 http 是明文传输,https 在 http 基础增加加密,http 默认端口 80,https 默认端口 443,http 安全性低于 https。
问题 4 http 主要用来做什么
回答 1 http 主要用来在客户端和服务器之间传输网页图片脚本等 web 资源,http 是互联网网页访问的基础通信协议。
【免责申明】 本文内容仅为 http 基础概念科普,http 存在 http1.0 http1.1 http2 等多个版本,协议详细规范以官方 RFC 标准文档为准,本文不替代官方标准原文。


