HTTP协议完全指南:从请求响应到HTTPS安全机制

文章目录

一、HTTP协议中的基本概念

1.HTTP协议介绍

HTTP协议(超文本传输协议)是互联网上应用最广泛的应用层协议之一,用于在客户端(如浏览器)和服务器之间传输超文本数据(如网页),采用​​请求-响应模型。

(1)协议

协议可以理解为 ​​人与人之间或机器与机器之间为了顺利合作而提前约定的"行动指南"​​。就像玩游戏前要讲好规则一样,没有规则就会乱套。

(2)传输

通过TCP建立连接(默认端口80),传输过程分为四步:

① 建立连接(TCP三次握手) → ② 发送请求 → ③ 返回响应 → ④ 关闭连接

(3)超文本

超文本(Hypertext)是一种​​通过超链接将不同信息节点组织成网状结构的电子文本​​,它打破了传统文本的线性阅读模式,允许用户自由跳转关联内容。

2.统一资源定位符(URL)

URL是资源的唯一标识,格式:协议://主机名:端口/路径?查询参数#片段

示例:http://www.example.com:8080/page?id=1#section

​​协议​​:http 或 https

​​主机名​​:域名或IP地址(如 www.example.com

​​路径​​:资源在服务器的位置(如 /page)

​​查询参数​​:?后键值对(如 ?id=1)

​​片段​​:#后指定资源子部分(如 #section)

二、HTTP协议中的请求和响应

1.HTTP客户端请求消息

复制代码
GET /index.html HTTP/1.1       ← 请求行
Host: www.example.com          ← 请求头部
User-Agent: Mozilla/5.0
Accept: text/html
                                ← 空行
(GET无请求正文)               ← 请求正文

(1)请求行

包含三部分:

​​方法​​(如 GET、POST)

​​URI​​(资源路径,如 /index.html)

​​协议版本​​(如 HTTP/1.1)

(2)请求头部

键值对传递附加信息(如 Host指定域名,User-Agent声明客户端类型)。

(3)空行

分隔头部与正文(CRLF实现)。

(4)请求正文

GET:参数附在URL后(如 /search?q=term)

POST:数据在正文中传输(如表单提交)。

2.HTTP服务端响应消息

复制代码
HTTP/1.1 200 OK                ← 状态行
Content-Type: text/html        ← 响应头部
Content-Length: 1024
                                ← 空行
<html>...</html>               ← 响应正文

(1)状态行

​协议版本​​(如 HTTP/1.1)

​​状态码​​(三位数字,指示结果)

​​状态文本​​(如 OK)

状态码
类别 首位数字 描述
1xx(信息类) 1xx 临时响应,需客户端继续操作或等待后续处理。
2xx(成功类) 2xx 请求已被服务器成功接收并处理。
3xx(重定向类) 3xx 需客户端进一步操作(如跳转新地址)。
4xx(客户端错误类) 4xx 请求因客户端问题(如语法错误)无法处理。
5xx(服务器错误类) 5xx 服务器内部错误导致请求失败。

(2)响应头部字段

描述服务器及资源信息(如 Content-Type声明响应体格式)。

(3)空行

(4)响应正文

返回的资源内容(如HTML、JSON等)。

3.HTTP请求方法理解

(1)请求方法

关键说明

​​幂等性 ​​:多次相同请求结果一致(如GET、PUT),非幂等方法(如POST)可能导致重复操作。

​​安全性​​ :安全方法(如GET)仅读取资源,无副作用;非安全方法(如DELETE)会修改资源状态。

​​版本支持 ​​:

HTTP/1.0:仅支持GET、POST、HEAD。

HTTP/1.1+:支持全部9种方法。
​​实际应用 ​​:

浏览器主要使用GET/POST,其他方法需通过API调用(如Fetch)。

POST与PUT区别:POST创建资源(非幂等),PUT更新资源(幂等)。

(2)HTTP与HTTPS

1)HTTP与HTTPS的区别
2)HTTPS解决的问题

​​1.数据加密​​:

通过对称加密(如AES)传输数据,防止窃听(如WiFi嗅探)。

​​2.身份认证​​:

服务器用CA签发的证书证明身份,避免钓鱼网站。

​​3.完整性校验​​:

使用MAC(消息认证码)检测数据篡改(如中间人攻击)。

​​4.信任链机制​​:

浏览器预置根证书,验证服务器证书合法性。

相关推荐
WayneJoon.H2 分钟前
2023CISCN deserbug复现
java·安全·web安全·cc链·反序列化
qwerasda12385210 分钟前
基于改进的SABL Cascade RNN的安全装备检测系统:手套护目镜安全帽防护服安全鞋识别与实现_r101_fpn_1x_coco_1
人工智能·rnn·安全
步步为营DotNet17 分钟前
深度解读.NET中ConcurrentDictionary:高效线程安全字典的原理与应用
java·安全·.net
xiatianxy23 分钟前
登高作业安全难题如何破?
大数据·人工智能·科技·物联网·安全·智能安全带
枫叶丹425 分钟前
【Qt开发】Qt系统(六)-> Qt 线程安全
c语言·开发语言·数据库·c++·qt·安全
萤丰信息33 分钟前
科技赋能智慧园区:解码绿色转型的“数字密码”
java·大数据·人工智能·科技·安全·智慧城市·智慧园区
qq_白羊座35 分钟前
HTTP请求走私攻击
网络·网络协议·http
2501_9151063238 分钟前
HBuilderX 项目上架 iOS app上架 App Store 的关键流程
android·ios·小程序·https·uni-app·iphone·webview
小李独爱秋1 小时前
计算机网络经典问题透视:流式存储、流式实况与交互式音视频的深度解析
服务器·网络协议·计算机网络·安全·音视频
2501_944521001 小时前
rn_for_openharmony商城项目app实战-账号安全实现
javascript·数据库·安全·react native·react.js·ecmascript