web安全系列2:http初探
web安全系列的第二篇
首先,我们先来理解两个名词C/S架构和B/S架构。
所谓C/S架构,就是客户机/服务器架构,而B/S架构就是浏览器/服务器架构。C/S是通常的桌面程序的架构方式,而B/S就是网站的架构方式。所以,我们需要深入掌握B/S架构。
那么浏览器是如何访问服务器的呢?这分为几步。首先,流浪器需要通过你输入的域名发送一个HTTP请求。
那什么是HTTP呢?HTTP的全称是HyperText Transfer Protocol,即超文本传输协议。它详细规定了浏览器和服务器之间相互通信的规则。
那么问题就非常明了了,当我们输入一个网址,又叫URL(统一资源定位符)并按下回车后,浏览器就发送了一个数据包,成为HTTP请求,在经过服务器确认后,服务器返回一个数据包叫HTTP响应,每个响应承载着网页的一部分,很多个这种响应经过浏览器的组织就成为了我们所看到的网页。
想观看这一过程也很简单,我们打开浏览器,随便输入一个网址,回车,然后按下F12,之后选中网络或者Network即可看到我们发送出去或者接收到的请求和响应了。
如上图所示,我们选中一个链接,再选中Headers就能看到请求和返回头。
那么请求和返回头又是什么呢?
一个http请求包括请求行、请求头以及请求正文三部分组成。第一行为请求行,由请求方法,请求地址和http版本三部分组成。从第二行至后面的空行为请求头,包括一系列消息头,后面介绍。最后一行就是请求正文,它是可选项,表示发送给服务器的一些数据。
响应和请求一样由响应行、响应头和响应正文组成,具体内容也和请求一样,细微区别可以自行查找,但是问题不大。
下面介绍一些请求方法。
常见的请求方法有两个,GET和POST。它们都是用于获取请求页面的指定信息。不同的是GET方法只能向服务器发送少量的数据,但是POST能发送大量的数据。同时,GET会将数据显示在浏览器端,而POST不会。其他一些方法如PUT、DELETE等可自行查阅,后面遇到再进行说明。
很多时候,我们都会在浏览器中看到404,那么这是什么呢?下面我们一起来看看。
所谓的404其实是HTTP状态码,最常见的404代表请求资源不存在。其中最开头的4代表客户端错误,也就是你自己的网络等的错误。以1开头的状态码表示信息提醒,请求已经被成功接收,继续处理。以2开头表示服务器成功地处理了请求;以3开头表示一种重定向,即表示访问资源已经被迁移,浏览器自动跳转;以5开头表示web服务器自身出现了问题。具体的代码表示什么也请自行查阅,后面遇到时会进行讲解。
下面介绍HTTP消息,也就是HTTP头。它有四种:请求头、响应头、普通头和实体头。这是很重要的一部分,很多时候我们通过修改这些东西就能成功突破一些低端防火墙的拦截。
首先是请求头,它的常用字段有:
Host--用于指定主机和端口号
Referer--表示用户从什么地方过来的
Cookie--表示请求者身份等信息
Range--用于请求实体的一部分内容
x-forward-for--代表请求端的IP
Accept--表示客户端接收的MIME类型的信息
Accept-Charset--表示客户端接收的字符集
下面是响应头:
Server--表示web服务器名称
Set-Cookie--向客户端设置Cookie
Last-Modified--告诉浏览器资源的最后修改时间
Location--配合跳转
Refresh--告诉浏览器定时刷新浏览器
普通头对我们的工作用处不大(暂时不大),所以不做说明
实体头:
Content-Type--向接收方指示实体的介质类型
Content-Encoding--表示媒体类型的编码
Content-Length--表示正文的长度
Last-Modified--指示资源的最后修改日期和时间
以上就是常用的头了,这里只是简单的介绍,具体的可以通过上面说的F12方法查看,通过搜索可以了解更多关于这方面的内容。
以上就是本次的内容,有什么错误的地方希望指出,也欢迎大家评论转载和讨论。
(以上内容仅供学习交流使用,遵守法律人人有责)
最新文章
- Ionic + AngularJS
- linux磁盘存储命令 磁盘存储命令
- 2013年最新流行的响应式 WordPress 主题【下篇】
- sockaddr与sockaddr_in结构体简介
- 如何以nobody用户执行命令?
- C++函数模板template
- this的面面观
- sublime text 也能矩形选择
- 错误";因为数据库正在使用,所以无法获得对数据库的独占访问权";的解决方案
- InActon-日志分析(KPI)
- linux 中多线程使用
- iOS发展系列II - UILabel 使用摘要
- springMVC 获取本地项目路径 及后整理上传文件的方法
- 图像处理------Mean Shift滤波(边缘保留的低通滤波)
- axios 用法简介(转载)
- 玩转EhCache之最简单的缓存框架
- xxl系列部署启动通用办法
- nginx 跳转系列
- python3之Django模型(一)
- HDU 1422 重温世界杯 DP题