一:HTTP协议解析
1.HTTP协议即超文本传输协议,是一种详细规定了浏览器和万维网服务器之间互相通信的规则,他是万维网交换信息的基础,它允许将HTML(超文本标记语言)文档从web服务器传送到web浏览器。
2.发起一个HTTP请求
①借助浏览器可以发起一个HTTP请求,输入URL
②不借助浏览器的时候,可以使用工具:curl
3.HTTP协议详解
目前HTTP协议最新版本为1.1,HTTP协议是一种无状态协议。无状态协议指的是web浏览器与web服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器发出请求,然后web服务器返回响应,连接就关闭了,在服务器端不保留连接的有关信息。也就是说HTTP请求只能由客户端发起,服务端不能主动向客户端发送数据。
HTTP遵循请求/应答模型,Web浏览器向Web服务器发送请求时,Web服务器处理请求并返回适当的应答。如下图:
HTTP请求包括三部分:1.请求行,即第一行;2.请求头(第二行至空白处);3.请求正文,空白下。
HTTP响应包括三部分:1.响应行,即第一行;2.响应头(第二行至空白处);3.响应正文,空白下。
4.HTTP请求方法
HTTP请求方法中最常见的为get和post。
①GET
GET方法主要用于获取请求页面的指定信息(以实体的格式),如果请求资源为动态脚本(非HTML),那么返回文本是web容器解析后的HTML源代码,而不是源文件。例如请求1.jsp,那么返回的不是1.jsp的源文件,而是经过解析的HTML代码。在浏览器中看到的就是经过解析渲染的页面。
②POST
POSt方法与GET方法类似,但是区别在于,GET方法没有请求内容,POST方法是有请求内容的。POST请求多用于向服务器发送大量的数据。GET也可以,但是有大小限制,并且GET请求会将发送的数据显示在浏览器端,而POST不会,所以相对来说安全一点。
③HEAD
HEAD方法除了服务器不能在响应里返回消息主体外,其他的和GET方法相同。主要用于获取报头,经常被用来测试超文本链接的有效性、可访问性和最近的改变。攻击者编写工具时,经常使用HEAD方法,因为只测试资源是否存在,而不用返回消息主题,所以速度比较快。
一个经典的HEAD请求如下:
HEAD /index.php HTTP/1.1
HOST: