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. Nginx配置反向代理服务器

    首先,在阅读<深入理解Nginx模块>后,大体了解了配置反向代理服务器一些常见的配置.如下进行说明:” l  Nginx worker进程个数 语法: worker_processes n ...

  2. Java_判断文件是否写入完成

    /** * 等待文件(非目录)读写完毕,费时的操作,不要放在主线程 * * @param file 文件 */ private void waitForWirtenCompleted(File fil ...

  3. python学习Day13 函数的嵌套定义、global、nonlocal关键字、闭包及闭包的运用场景、装饰器

    复习 1.函数对象:函数名 => 存放的是函数的内存地址1)函数名 - 找到的是函数的内存地址2)函数名() - 调用函数 => 函数的返回值 eg:fn()() => fn的返回值 ...

  4. 爬虫之进阶 基于twisted实现自制简易scrapy框架(便于对scrapy源码的理解)

    1.调度器 class Scheduler(object): """调度器""" def __init__(self, engine): & ...

  5. bash小技巧1 获取文件当前路径

    我们linux获取文件当前路径一般问 #逼格不够高 [root@xxxx]# pwd 高逼格 SHELL_FOLDER=$(dirname $(readlink -f "$0"))

  6. 阿里云 部署dashboard

    本文是基于kubeasz 进行部署安装,将部署心得记录下来.可以查看原文地址: https://github.com/gjmzj/kubeasz/blob/master/docs/guide/dash ...

  7. 获取当前div中的文本(只获取当前div的, 子元素不要, 基于layui)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. pyautogui 文档(二):鼠标控制

    0,0 X increases --> +---------------------------+ | | Y increases | | | | 1920 x 1080 screen | | ...

  9. numpy总结

    介绍 numpy是一个功能强大的python库.机器学习中,需要对矩阵进行各种数值计算,numpy对其提供非常好的库,用于简单和快速计算. 常用函数库 数组属性 ndarray.ndim:秩,即轴的数 ...

  10. 杭电oj 4004---The Frog Games java解法

    import java.util.Arrays; import java.util.Scanner; //杭电oj 4004 //解题思路:利用二分法查找,即先选取跳跃距离的区间,从最大到最小, // ...