网络安全基础之HTTP协议
1.HTTP协议概述
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是一个应用层的、面向对象的协议,其简单、快速的特点,非常适用于互联网应用。通过HTTP协议,用户利用浏览器即可访问不同的应用系统,避免了大量的客户端操作不便的情况。
HTTP支持的B/S(Browser/server)模式,能够从易用性、稳定性等方面满足用户个性化的需求。这种由客户端发起请求、服务器根据用户请求进行处理的方式非常适用于大规模的应用开展,到目前为止,HTTP协议已成为互联网中应用最广泛的应用层协议。
HTTP协议的主要特点可以概况如下:
1)HTTP协议足够简单,简单到可以概况为“用户发起请求—>服务器响应请求—>新请求重新发起”,每次请求均为独立行为,这体现了HTTP协议的无状态的特点。
2)HTTP协议支持B/S模式,只要有浏览器即可工作,用户使用简单、易于操作。从某种意义来说,APP也可以被视为某种特定内容的浏览器。
3)HTTP协议灵活性好,可用于数据传输、视频播放、交互等,因此适合快速迭代的互联网应用环境。
HTTP协议主要工作于B-S架构之上,这个时候浏览器作为HTTP的客户端通过URL向HTTP的服务器(web服务器)发送所有请求,web服务器根据接收到的请求后,向客户端发送响应信息。客户端向服务器请求发送时,需要传送请求方法和路径。路径就是URL,而HTTP常用的请求方法为GET和POST方法,每种方法规定了客户端与服务器通讯方式和数据报文。
2 HTTP报文
HTTP请求报文
HTTP协议的请求包报文格式如下图
示例:
GET /test.html HTTP/1.1
HOST: www.baidu.com
Connection: close
上述三行字符串中存在请求行和首部行。
2.1请求行
请求行有三个字段:HTTP协议的方法、URL、HTTP的版本
(1)方法:常用的HTTP方法有GET、POST、HEAD、PUT、和DELETE等。绝大部分HTTP的请求报文使用GET方法,需要提交数据一般使用POST方法
(2)URL:指明请求对象的表示,实例中请求对象标识就是:/test.html
(3)HTTP版本。示例中的HTTP版本为1.1.
2.2首部行
首部行有多组键值(KEY:VALUE)组成,如HOST的VALUE是www.baidu.com,指明了请求对象所在的主机。
Connection的VALUE是close,代表浏览器告知服务器,不使用持续性的连接。
2.3实体主体
在GET方法中,实体的主体为空。使用POST方法的时候,实体主体的内容就是用户在表单中输入的值。
HTTP响应报文
HTTP协议的响应包报文格式如下图
示例:
HTTP/1.1 200 OK
Server:nginx
Content-Length:353503
Content-Type: text/html
(data)
对示例进行分析:
2.4状态行
(1)HTTP版本:HTTP版本为1.1
(2)状态码:返回状态码,由状态码可以知道响应请求的对应信息。
- 200 OK:请求成功,信息在返回的响应报文中。
302 Moved:跳转到另一个URL
404 Not Found:浏览器请求的文件不在服务器上
2.5首部行
响应包报文的首部行和请求包的首部行一样,由键值组成
Server : 指明响应报文中的服务器类型,示例中为nginx服务器
Content-Length:报文中的字节数
Content-Type:实体体中的对象类型
2.6实体体
相对于请求包中的正文内容,响应包的内容会携带当前页面的源码。客户端浏览器可根据响应包中的源码显示出完整的页面。
获取更多网络安全信息:
+Q Q群:863658976
V X公众号: 哈客部落
哈客社区:hake.cc
参考资料:
1.《Web安全防护指南:基础篇》 蔡晶晶,张兆心,林天翔编著