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初探的更多相关文章

  1. 构建安全的Xml Web Service系列之如何察看SoapMessage

    原文:构建安全的Xml Web Service系列之如何察看SoapMessage 上一篇文章地址:构建安全的Xml Web Service系列一之初探使用Soap头 (5-22 12:53)     ...

  2. 构建安全的Xml Web Service系列之初探使用Soap头

    原文:构建安全的Xml Web Service系列之初探使用Soap头 Xml Web Service 从诞生那天就说自己都么都么好,还津津乐道的说internet也会因此而进入一个新纪元,可5年多来 ...

  3. 构建安全的Xml Web Service系列之wse之证书存储位置

    原文:构建安全的Xml Web Service系列之wse之证书存储位置 我们在前几天对xml web service的安全性提出了一些建议,大家可以通过以下地址访问: 构建安全的Xml Web Se ...

  4. Web安全系列(三):XSS 攻击进阶(挖掘漏洞)

    前言 在前些章节 (web安全系列(一):XSS 攻击基础及原理)以及(Web安全系列(二):XSS 攻击进阶(初探 XSS Payload))中,我详细介绍了 XSS 形成的原理以及 XSS 攻击的 ...

  5. Web API系列(三)统一异常处理

    前面讲了webapi的安全验证和参数安全,不清楚的朋友,可以看看前面的文章,<Web API系列(二)接口安全和参数校验>,本文主要介绍Web API异常结果的处理.作为内部或者是对外提供 ...

  6. Web API系列(二)接口安全和参数校验

    以前简单介绍过web api 的设计,但是还是有很多朋友问我,如何合理的设计和实现web api.比如,接口安全,异常处理,统一数据返回等问题.所以有必要系统的总结总结 web api 的设计和实现. ...

  7. [Python] 利用Django进行Web开发系列(二)

    1 编写第一个静态页面——Hello world页面 在上一篇博客<[Python] 利用Django进行Web开发系列(一)>中,我们创建了自己的目录mysite. Step1:创建视图 ...

  8. ASP.NET Web API系列教程目录

    ASP.NET Web API系列教程目录 Introduction:What's This New Web API?引子:新的Web API是什么? Chapter 1: Getting Start ...

  9. Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

    本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这 ...

随机推荐

  1. spring注解-“@Scope”

    @Scope可用来指定Spring创建bean的方式 默认为单实例,即@Scope("singleton").IOC容器启动的时候会调用方法创建对象并放到IOC容器中,以后每次获取 ...

  2. linux 之分区和文件系统

    分区类型 主分区:总共最多只能分4个 扩展分区:只能有一个,也算作主分区的一种,也就是说主分区加扩展分区最多4个,但是扩展分区不能存储数据和格式化,必须再划分成逻辑分区才能使用. 逻辑分区:逻辑分区是 ...

  3. 兼容的获取样式的函数getStyle()

    想要得到某个元素的某个样式属性,可以用: <div id="div01" style="color:red">123</div> var ...

  4. windows下consul利用json文件注册服务

    windows下,以开发模式启动consul命令 consul agent -dev -config-dir=D:\tools\consul 人工注册服务,新建一个json文件 ,放到D:\tools ...

  5. png 变透明

    using  System.Drawing Image image;    image = Image.FromFile("d:\\1.png");    Bitmap bitma ...

  6. vue 自定义组件使用v-model(组件通信方式1)

    父组件通过v-model传递值给子组件时,会自动传递一个value的prop属性,在子组件中通过this.$emit(‘input’,val)自动修改父组件v-model绑定的值 child: < ...

  7. 阿里巴巴 Weex

    原文链接:https://blog.csdn.net/zz901214/article/details/79168707/ 分享嘉宾:侑夕 阿里巴巴高级前端工程师(上张帅哥的图镇楼,看完,更有动力学习 ...

  8. Collections与Collection

    Collection是集合体系的最顶层,包含了集合体系的共性 Collections是一个工具类,方法都是用用Collection Collections方法: //static int binary ...

  9. python--第二十天总结(Django的一些注意)

    关闭Django模板的自动转义 Django的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全.但是有的时候我们可能不希望这些HTML元素 被转义,比如我们做一个内容管 ...

  10. Codeforces Round #552 (Div. 3) B题

    题目链接:http://codeforces.com/contest/1154/problem/B 题目大意:给出n个数,每个数都可以加上或减去这个一个数D,求对这n个数操作之后当所有数都相等时,D的 ...