返回

网络安全基础之HTTP协议

发布时间:2022-04-18 22:34:30 502
# 服务器# 技术# 信息# 网络安全

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协议的请求包报文格式如下图
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响应包报文

示例:
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安全防护指南:基础篇》 蔡晶晶,张兆心,林天翔编著

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(0)
按点赞数排序
用户头像
精选文章
thumb 中国研究员首次曝光美国国安局顶级后门—“方程式组织”
thumb 俄乌线上战争,网络攻击弥漫着数字硝烟
thumb 从网络安全角度了解俄罗斯入侵乌克兰的相关事件时间线