HVV笔记(基础理论)——HTTP协议
1 什么是网络协议
1.1 网络协议中的约定
要素 | 含义 |
---|---|
语法 | 数据和控制信息的结构或者格式 |
语义 | 可以发送什么数据和控制信息,完成什么动作或者做什么响应 |
时序 | 信息交流的次序,先发什么,响应什么,再发什么 |
1.2 TCP/IP的四层协议
层次 | 名称 | 作用 |
---|---|---|
Application Layer | 应用层 | 为用户提供各种需要的服务 |
Transport Layer | 传输层 | 负责节点的数据传输,实现格式化数据、发送数据、重连等功能 |
Internet Layer | 网际层 | 选择中间节点,以确定两台主机件的通讯路径 |
Link Layer | 数据链路层 | 实现网卡接口的网络驱动,在以太网、WiFi这些物理媒介上传输原始数据 |
1.3 常见协议
ftp
通过FTP访问资源,格式ftp://
http
通过HTTP访问资源,格式http://
https
通过安全的https访问该资源,格式https://
mailto
电子邮件地址,通过SMTP访问,格式mailto://
ed2k
通过支持ed2k(专用下载链接)协议的P2P软件访问该资源。(代表软件:电驴)格式ed2k://
thunder
通过支持thunder(专用下载链接)协议的P2P软件访问该资源。(代表软件:迅雷)格式thunder://
gopher
通过Gopher协议访问该资源
1.4 URL
Uniform Resource Locator 统一资源定位符
1.5 浏览器
用于解析HTML网页
Netscape,Internet Explorer,Firefox,Google Chrome
2 HTTP协议
2.1 常见请求方式 Request Method
类型 | 描述 |
---|---|
GET | 请求从服务器获取资源 |
HEAD | 类似于GET请求,只不过不会返回实体数据,只获取报头 |
POST | 向服务器提交数据 |
PUT | 替换服务器的内容 |
DELETE | 请求服务器删除指定的资源 |
TRACE | 对链路进行测试或诊断 |
-
GET和POST的区别
类型 GET POST 用途(语义) 请求数据(查询、搜索) 发送数据 后端处理 从URL获取参数 从表单获取数据 可见性 参数在URL可见 参数在URL不可见 安全性 安全性差,有浏览历史,可保存书签,可缓存 安全性好 数据长度限制 浏览器会限制URL长度 无限制 数据类型限制 只允许ASCII码 无限制
2.2 请求报文
-
常见请求头
Header 说明 示例 Connection 表示是否需要持久连接(HTTP1.1默认进行持久连接) Connection:close Cookie HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器 Cookie:$Version=1;Skin=new Content-Type 请求的与实体对应的MIME信息 Content-Type:application/x-www-form-urlencoded Host 指定请求的服务器的域名和端口号 Host:www.xxx.com User-Agent 包含发出请求的用户信息 User-Agent:Mozilla/5.0(Linux;X11) Cache-Control 告诉所有的缓存机制是否可以缓存及哪种类型 Cache-Control:no-cache Content-Length 响应体的长度 Content-Length:123 refresh 应用与重定向或一个新的资源被创造,在5秒之后重定向 Refresh:5;url=http://www.xxx.com Set-Cookie 设置Http Cookie Set-Cookie:UserID=Zhangsan;Max-Age=300;Version=1
2.3 响应报文
-
响应状态码
类型 描述 1XX 信息,服务器收到请求,需要请求者继续执行操作 2XX 成功,操作被成功接收并处理 3XX 重定向,需要进一步的操作以完成请求 4XX 客户端错误,请求包含语法错误或无法完成的请求 5XX 服务器错误,服务器在处理请求的过程中发生了错误
2.4 HTTP协议特点
- 请求应答模式(Request/Response)
- 灵活可扩展
- 可靠传输
- 无状态
- 明文传输
3 HTTPS协议
HTTPS = HTTP + SSL/TLS
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NCRuyP8K-1678176881051)(images\https.jpg)]
/Response)
- 灵活可扩展
- 可靠传输
- 无状态
- 明文传输
3 HTTPS协议
HTTPS = HTTP + SSL/TLS
4 HTTP服务器
-
Apache (PHPStudy)
-
Nginx
-
Tomcat
-
Weblogic
-
Python
#python2 python -m SimpleHTTPServer 8088 ############################### #python3 python -m http.server 8088
request包
-
Java
OKhttp、HTTPClient
5 HTTP常用调试工具
-
浏览器打开网页后按F12
-
hackbar插件
-
Burp Suite
-
Postman
-
Wireshark、Fiddler、Charles
-
CURL(Kali中的命令)