1. Web安全时代
1.0时代:针对服务器进行攻击,主要包括SQL注入,上传漏洞,命令链接等攻击方式
2.0时代:针对服务器以及用户,新增XSS、CSRF等攻击方式
2. Web工作流程
Web工作方式类似餐厅点餐,点餐-上菜。这是用户能看到的部分。而服务员接到点餐后,会把菜单拿给厨师,然后厨师做好菜后会给服务员说,然后服务员就拿到做好的菜品就上菜给客人。
而Web工作流程与上面相似,用户通过浏览器输入网址,比如baidu.com,浏览器会通过DNS服务器找到baidu.com对应的服务器IP地址,服务器接到请求后与数据库交互,然后得到结果,并返回给用户。
浏览器并不能直接通过我们输入的网址直接与服务器通讯。当我们输入需要访问的网址后,浏览器会把我们的网址通过DNS服务器查询,得到服务器的IP地址,然后服务器直接与这个IP地址进行通讯的。
3. URL协议
浏览器与服务器通讯也需要一种方法,这个方法就是URL协议,它的中文翻译是“统一资源定位符”,它的作用是以简洁的方式从互联网上得到资源,并且让每个文件都有一个唯一的URL地址。
URL格式大致为:
协议://用户名:密码@域名:端口号/目录/文件名.文件后缀?参数=值#锚点
- 协议:URL支持许多协议,我们常见的协议有HTTP、FTP、MAILTO、HTTPS协议,而协议的作用就是告诉浏览器将如何处理要打开的文件。
- 用户名和密码:如果服务器需要授权才能访问就在这里输入
- 域名:这里填写你需要访问的网站域名,比如www.baidu.com或者image.baidu.com
- 端口号:如果是http协议,默认的80端口是不需要填写的,其他的协议根据相应的协议端口进行填写
- 目录以及文件名、后缀:这里是访问服务器中的文件路径。
- 参数:这里是需要传递给服务器的一些值,服务器会根据这些传递的值作出响应。
- 锚点:锚点的作用是定位当前文件中的哪一个位置。
4. HTTP协议
HTTP协议就是web中最重要的协议,也是使用应用最广泛的协议,每次我们我们访问网页都进行了http请求。
4.1.1. 一个完整的http请求包含三部分:
- 请求行
包含请求的方法以及URL、协议版本,比如:GET /test/xx.php?id=123444 HTTP/1.1
- 请求头
常见内容包含:
HOST:主机地址(域名)比如:www.xsscript.com。
User-Agent:让服务器能够识别用户的包含操作系统及版本、CPU、浏览器、语言等信息。
Cookie:代表用户凭证,服务器可以根据这个用户凭证来识别你是谁。
Referer:服务器可以通过Referer来判断用户的来源,也就是你从什么地方过来的。
- 请求正文
GET请求没有请求正文,所有的参数均含在请求行和头中,POST有请求正文
4.1.2. 一个完整的http响应包含三部分:
- 状态行
包含协议和版本、以及服务器状态的响应编码。比如HTTP/1.1 200 OK表示服务器响应成功
- 响应头
常见内容包含:
Server:HTTP服务器的版本
Content-Type:响应正文类型,让浏览器根据类型进行处理然后显示给用户
Set-Cookie:如果用户没有Cookie或者Cookie需要更新,服务器会在响应包中含此内容,提示浏览器设置或更新Cookie。
Content-Language:响应正文的语言
Content-Length:响应正文的长度。
Location:当用户访问www.baidu.com然后响应包中包含了此内容的时候,会跳转到相应的网址。
- 响应正文
发送给用户浏览器处理的正文内容。