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方法查看,通过搜索可以了解更多关于这方面的内容。
以上就是本次的内容,有什么错误的地方希望指出,也欢迎大家评论转载和讨论。
(以上内容仅供学习交流使用,遵守法律人人有责)
web安全系列2:http初探的更多相关文章
- 构建安全的Xml Web Service系列之如何察看SoapMessage
原文:构建安全的Xml Web Service系列之如何察看SoapMessage 上一篇文章地址:构建安全的Xml Web Service系列一之初探使用Soap头 (5-22 12:53) ...
- 构建安全的Xml Web Service系列之初探使用Soap头
原文:构建安全的Xml Web Service系列之初探使用Soap头 Xml Web Service 从诞生那天就说自己都么都么好,还津津乐道的说internet也会因此而进入一个新纪元,可5年多来 ...
- 构建安全的Xml Web Service系列之wse之证书存储位置
原文:构建安全的Xml Web Service系列之wse之证书存储位置 我们在前几天对xml web service的安全性提出了一些建议,大家可以通过以下地址访问: 构建安全的Xml Web Se ...
- Web安全系列(三):XSS 攻击进阶(挖掘漏洞)
前言 在前些章节 (web安全系列(一):XSS 攻击基础及原理)以及(Web安全系列(二):XSS 攻击进阶(初探 XSS Payload))中,我详细介绍了 XSS 形成的原理以及 XSS 攻击的 ...
- Web API系列(三)统一异常处理
前面讲了webapi的安全验证和参数安全,不清楚的朋友,可以看看前面的文章,<Web API系列(二)接口安全和参数校验>,本文主要介绍Web API异常结果的处理.作为内部或者是对外提供 ...
- Web API系列(二)接口安全和参数校验
以前简单介绍过web api 的设计,但是还是有很多朋友问我,如何合理的设计和实现web api.比如,接口安全,异常处理,统一数据返回等问题.所以有必要系统的总结总结 web api 的设计和实现. ...
- [Python] 利用Django进行Web开发系列(二)
1 编写第一个静态页面——Hello world页面 在上一篇博客<[Python] 利用Django进行Web开发系列(一)>中,我们创建了自己的目录mysite. Step1:创建视图 ...
- ASP.NET Web API系列教程目录
ASP.NET Web API系列教程目录 Introduction:What's This New Web API?引子:新的Web API是什么? Chapter 1: Getting Start ...
- Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问
本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...
随机推荐
- SnowFlake学习
分布式系统中生成全局唯一且趋势递增ID UUID - 太长,无序,数据库插入分裂性能不行 利用数据库自增序列,等步长生成 - 依赖数据库 SnowFlake:使用见下图 抄代码 https://www ...
- Java运行时数据区
目录 1. 概述 2. Java内存结构 3. 程序计数器 4. Java虚拟机栈 5. 本地方法栈 6. 堆 7. 方法区 8. 运行时常量池 9. 直接内存 10. 总结 1. 概述 作为日常的J ...
- 1503.02531-Distilling the Knowledge in a Neural Network.md
原来交叉熵还有一个tempature,这个tempature有如下的定义: \[ q_i=\frac{e^{z_i/T}}{\sum_j{e^{z_j/T}}} \] 其中T就是tempature,一 ...
- ECharts折线图多个折线每次只显示一条
echart 两条折线图如何默认只显示一条,另一条隐藏呢 只需要在legend后加上, selectedMode: 'single', selectedMode [ default: true ] 图 ...
- 吴裕雄 python 机器学习——岭回归
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets, linear_model from s ...
- python flask 解决中文乱码
response = make_response(output_string)response.headers['Content-Type'] = 'text/plain;charset=UTF-8' ...
- python之列表及其方法---整理集
列表类,类名是list 通过list类创建对象,使用中括号 列表特性: 使用中括号括起来 中间用逗号分隔每个元素 元素可以是数字.字符串.布尔值.列表 列表中可以嵌套列表 列表中每个元素的下标从0开始 ...
- webpack优化以及node版本
最近做的这个项目webpack用的是1.X的版本,真的非常多的坑,然后最近在疯狂的做优化: 事情的起因是每次我npm run dev的时侯都需要5分钟+,这个速度真的是难以忍受,然后就尝试去做项目的优 ...
- nginx安装与挂载
Linux下添加新硬盘,分区及挂载 http://blog.chinaunix.net/uid-25829053-id-3067619.html vim /etc/fstab /dev vdb1 / ...
- 使用vue-cli@3启动elementui脚手架
[vue3.x] 准备看elementui的源码,早上拉elementui提供的脚手架代码,于是下载了vue3.x(之前一直用2.x) 1.先把vue2.x卸载了 npm uninstall -g v ...