http和https的区别

1.定义 •http(HyperText Transfer Protocol)是基于 TCP/IP 模型应用层的无状态协议,用于在客户端(如浏览器)和服务器之间传输超文本资源(网页、图片、视频 等),是互联网访问的基础协议。 •https(HyperText Transfer Protocol Secure)是 HTTP 的加密版本,通过在 HTTP 和 TCP 之间添加“SSL/TLS 加密层”,实现请求/响应数据的加密传输,解决 HTTP 明文传输的安全隐患。

2.http核心特点 • 无状态:服务器不记录客户端的历史访问状态(每次请求都是独立的),需通过Cookie、Session 补充状态管理; • 基于 TCP 连接:通信前需通过 TCP 三次握手建立连接,传输完成后通过四次挥手释放连接; • 明文传输:请求和响应数据均为明文,无加密,存在数据泄露、篡改风险; • 简单高效:协议头部简洁,请求/响应流程简单,易于实现。

3.https核心特点 •https 的“身份认证”依赖 CA 机构和数字证书,解决“如何确认服务器是合法的,而非伪造的”问题。 • 使用 https:https 的加密通道和数字证书验证,可有效阻止中间人攻击(攻击者无法解密加密数据,也无法伪造合法的数字证书); • 验证数字证书:客户端(如浏览器)会自动验证服务器证书的合法性,证书无效时会提示风险(如“此网站不安全”),用户需拒绝访问; • 避免公共网络传输敏感数据:在咖啡厅、机场等公共 WiFi 环境下,尽量不登录银行、支付等敏感网站(公共网络易被监听和攻击)。

4.端口 •http默认80端口,https默认443端口。

5. http报文结构(请求报文+响应报文) HTTP 通信的核心是“请求-响应”模式,数据以“报文”形式传输,分为请求报文(客户端→服务器)和响应报文(服务器→客户端),两者结构相似,均由“起始行+头部+空行+实体主体”组成。

1)HTTP 请求报文示例(简化)

http

GET /s?wd=网络知识 HTTP/1.1 # 起始行

Host: www.baidu.com # 头部字段(Host:目标服务器域名)

User-Agent: Chrome/114.0.0.0 # 头部字段(客户端浏览器信息)

Accept: text/html # 头部字段(可接收的资源格式)

空行(分隔头部和实体主体)

实体主体(GET 请求无主体,POST 请求存放表单数据等)

各部分说明: • 起始行:包含请求方法(GET/POST 等)、请求路径+参数、HTTP 版本;

                       • 头部字段:键值对形式,传递客户端信息、请求条件等(如 Host、User-Agent、Cookie);

                       • 空行:必须存在,用于分隔头部和实体主体;

                       • 实体主体:可选,GET 请求无主体(参数拼在 URL 后),POST 请求存放表单数据、JSON 等。

常见请求方法: • GET:获取资源(参数拼 URL,长度有限制,不安全);

                          • POST:提交资源(参数存主体,长度无限制,相对安全);

2)HTTP 响应报文示例(简化)

http

HTTP/1.1 200 OK # 起始行(HTTP 版本+状态码+状态描述)

Content-Type: text/html # 头部字段(响应数据格式)

Content-Length: 1024 # 头部字段(响应数据长度)

Server: Apache # 头部字段(服务器软件信息)

空行(分隔头部和实体主体) ... # 实体主体(网页 HTML 内容)

各部分说明

• 起始行:包含 HTTP 版本、状态码、状态描述(核心是状态码);

• 头部字段:传递服务器信息、响应数据属性等(如 Content-Type、Server);

• 空行:分隔头部和实体主体;

• 实体主体:服务器返回的具体资源(如 HTML、图片二进制数据)。

6.常见状态码:

• 200 OK:请求成功;

• 404 Not Found:资源不存在;

• 500 Internal Server Error:服务器内部错误;

posted @ 2026-03-08 11:56  DAO520  阅读(75)  评论(0)    收藏  举报