HTTP协议
众所周知,路由器后台管理界面一般都是以Web服务的方式提供的,而Web服务是使用HTTP协议传输的,所以深入理解HTTP协议十分重要。超文本传输协议(HyperText Transfer Protocol,简写为HTTP)是一个应用层协议,虽然在2015年已推出HTTP/2版本,并被主要的web浏览器及web服务器支持,但目前使用最广泛的还是HTTP/1.1版本。
HTTP协议较为简单,所以传输速度很快。一般来说,每次HTTP连接只处理一个请求,这样的好处是可以节省传输时间。
1、请求报文结构
报文中的数据都使用ASCII编码,各个字段的长度是不确定的(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符),如图所示:

请求报文以GET请求为例,如所示:
GET /Get_web.asp?name=admin&pass=123456 HTTP/1.1 Host: 192.168.1.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate DNT: 1 Connection: keep-alive Upgrade-Insecure-Requests: 1 |
请求报文参数详解
所有请求方法名称全为英文大写,目前有9种,路由器主要支持2种,如下表所示:
请求方法 | 请求需要请求体 | 说明 |
GET | 不需要 | 请求参数放在URI之后,使用?分割URI和数据,如:参数之间以&相连,如、/Get_web.asp?name=admin&pass=123456,浏览器的地址栏输入来浏览网页,都是GET方式 |
POST | 需要 | 请求参数放在请求体中,像提交表单的操作,都是POST方式 |
HTTP请求常见头部字段,如下表所示:
Header | 示例 | 说明 |
Host | Host: 192.168.1.1 | 请求的服务器的域名、IP,一般也包含端口号 |
User-Agent | User-Agent: Mozilla/5.0 (Linux; X11) | 包含发出请求的浏览器信息、系统信息 |
Referer | Referer: http://192.168.1.1/hello.html | 先前网页的地址,当前请求网页紧随其后,即来路 |
Accept | Accept: text/plain, text/html | 指定客户端能够接收的内容类型 |
Accept-Encoding | Accept-Encoding: compress, gzip | 指定浏览器可以支持的web服务器返回内容压缩编码类型 |
Accept-Language | Accept-Language: en,zh | 浏览器可接受的语言 |
Authorization | Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ== | HTTP授权的授权证书,一般是账号:密码的base64编码后的数据 |
Content-Length | Content-Length: 123 | 请求体的长度 |
Content-Type | Content-Type: application/x-www-form-urlencoded | 请求的与实体对应的扩展类型信息 |
Cookie | Cookie: id=12345678; | HTTP请求发送时,会把保存在该请求域名下的所有cookie值一起发送给web服务器 |
2、请求报文结构

响应报文示例:
HTTP/1.1 401 Unauthorized Server: httpd Date: Wed Sep 18 00:59:20 2019 Set-Cookie: cookie=db00-0051-2200-0094 Pragma: no-cache Cache-Control: no-cache Content-Type: text/html <html><head><title>Document Error: Unauthorized</title></head> <body><h2>Access Error: Unauthorized</h2> <p>Access to this document requires a User ID</p></body></html> |
响应状态码
状态码 | 含义 | 说明 |
1xx | 信息 | 收到请求,继续处理 |
2xx | 成功 | 请求已成功接收,理解和接受 |
3xx | 重定向 | 需要采取进一步措施才能完成请求 |
4xx | 客户端错误 | 请求包含错误的语法或无法满足 |
5xx | 服务器错误 | 服务器无法满足明显有效的请求 |