web工作机制

网页、网站

我么可通过浏览器上网看到精美的页面,一般都是经过浏览器渲染的.html 页面,其中包含css 等前端技术。多个网页的集合就是网站。

Web容器

Web 容器,也叫Web 服务器,主要提供Web 服务,也就是常说的HTTP 服务。

常见的Web 容器有:Apache/IIS/Nginx 等。

静态页面

静态页面,都是些.html 文件,是纯文本文件。这些文件中包含html 代码。

中间件服务器

以上这种,只能单向给用户战术信息。随着Web 的发展,信息要双向流动,产生了交互的需求,也就是动态网页的概念;所谓动态就是利用flash、Php、asp、Java 等技术在网页中嵌入一些可以运行的脚本,用户浏览器在解释页面时,遇到脚本就启动运行它。

脚本的使用让Web 服务模式有了双向交流的能力,Web服务器模式也可以像传统的软件一样进行各种事务的处理,如编辑文件、利息计算、提交表单等,Web 架构的适用面大大扩展

这些脚本可以嵌入到页面中,如JS等。也可以以文件的形式单独存放在Web 服务器的目录里,如.asp、.php、jsp 文件等。这样功能性的脚本越来越多,形成常用的工具包,单独管理,Web 业务开发时,直接使用就可以了,这就是中间件服务器,它实际上时Web 服务器处理能力的扩展。

数据库的出现

静态网页与脚本都是事先设计好的,一般不经常改动,但网站上的很多内容需要经常更新,将这些变动的数据放在静态网页的程序中显然不合适,传统的办法是数据与程序分离,采用的专业的数据库。

Web 开发者在Web 服务器后边增加了一个数据库服务器,这些经常变动的数据被存进数据库,可以随时更新。当用户请求页面时,脚本根据用户请求的页面,涉及到动态数据的地方,利用SQL数据库语言,从数据中读取最新的数据,生产“完整”页面,最后送给用户

HTTP协议

简要概述

HTTP是浏览器与web服务器之间的通信协议 是传递消息的规范和要求。

1900年提出的,当前版本是1.1

HTTP是用来将HTML文档从web服务器传输到web浏览器,是一个请求和响应的协议。客户端发出请求,服务端对请求给回应

HTTP使用可靠的TCP连接,默认端口为80

特点

支持浏览器或服务模式

浏览器向服务器提出请求时,只需要传送请求方法和请求路径

HTTP运行传输任意类型的对象

 URL

统一资源定位符(网址),用来告诉Web 容器,浏览器所请求的资源(文件)的路径。例如:Schema://login:password@adress:port/path/to/resource/?query_string#fragment

Port     80

Login     用户名
Password   密码   

Fragment     锚点   (实现页面内定位)


URL的编码  

URL 只允许出现的字符是有限制的,URL 中path 开始允许直接出现[A-Z][a-z][0-9]

半角减号(-)、下划线句点(。)、波浪号(~)。其他字符均会被百分号编码(包括空格)

可以在burp里的decoder中进行编码与解码
 解码:%+ASCII码十六进制  

 HTTP报文分析
 

HTTP请求由请求行  请求头 请求正文构成

请求行:方法,资源路径,协议/版本

请求头:从请求报文第二行开始到第一个空行为止的内容。其中包含很多字段

 请求正文:请求头下面  

请求方法:

GET    最常用的方法,通常用户请求服务器发送的某个资源。

POST    可以向服务器提交参数以及表单,包括文件流等

HEAD    与GET 方法类似,但在服务器响应中只返回首部

PUT    与GET 从服务器读取文档相反,PUT 方法会向服务器写入文档

TRACE    回显浏览器的请求

OPTIONS    请求Web 服务器告知其支持的各种功能DELETE

 响应报文分析

响应报文由状态行 响应头 响应正文组成

状态行:协议/版本,状态代码,描述短语

响应报头

第二行开始到第一个空行为止的所有内容,其中包含了关于HTTP响应的重要字段。

响应正文

服务器返回资源的内容,即浏览器接收到的HTML 代码。

    状态码

100~199    信息性状态码

200~299    成功状态码

300~399    重定向状态码

400~499    客户端错误状态码

500~599    服务器错误状态码

    主要字段

Server    服务器指纹

Set-Cookie    向浏览器端设置Cookie

Last-Modified    服务器通过这个头信息告诉浏览器,资源的最后修改时间

Content-Length    请求正文长度

Location    重定向目标页面

Refresh    服务器通过Refresh头告诉浏览器定时刷新浏览器
 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐