HTTP是什么?
HTTP 是一种用作获取诸如 HTML 文档这类资源的协议。它是 Web 上进行任何数据交换的基础,同时,也是一种客户端—服务器(client-server)协议,也就是说,请求是由接受方——通常是浏览器——发起的。一个完整网页文档是由获取到的不同文档组件——像是文本、布局描述、图片、视频、脚本等——重新构建出来的。
HTTP是web网页的常用协议,它在七层协议的应用层。用于客户端和web服务器的数据交换、通信和信息交换。
HTTP的中间件服务器
Tomcat、Nginx和Apache都是HTTP常见的中间件服务器,HTTP服务器本质上也是一种应用程序,它通过监听TCP端口,然后客户端根据HTTP协议获取服务器上的文件、图像等。
静态网页和动态网页
静态网页:
(1)静态网页不能简单地理解成静止不动的网页,他主要指的是网页中没有程序代码,只有HTML(即:超文本标记语言),一般后缀为.html,.htm,或者.xml等。虽然静态网页的页面一旦做成,内容就不会再改变了。但是,静态网页也包括一些能动的部分,这些主要是一些GIF动画等
(2)静态网页的打开,用户可以直接双击,并且不管任何人任何时间打开的页面的内容都是不变的。
动态网页:
(1)动态网页是指跟静态网页相对的一种网页编程技术。动态网页的网页文件中除了HTML标记以外,还包括一些特定功能的程序代码,这些代码可以使得浏览器和服务器可以交互,所以服务器端根据客户的不同请求动态的生成网页内容。
(2)动态网页,与网页上的各种动画、滚动字幕等视觉上的动态效果没有直接关系,动态网页也可以是纯文字内容的,也可以是包含各种动画的内容,这些只是网页具体内容的表现形式,无论网页是否具有动态效果,只要是采用了动态网站技术(如PHP、ASP、JSP等)生成的网页都可以称为动态网页。
静态网页的后端没有代码参与,它与数据库不能进行交互,静态网页并不能理解为静止的网页,静态网页和动态网页是根据代码和交互性来划分的。动态网页的后端有特定的代码参与,它可以和数据库进行交互。
URL
统⼀资源定位符(网址,全球唯⼀),用来告诉Web 服务器,浏览器所请求资源(文件)的路径(URI)。
http://127.0.0.1/pikachu-master/vul/burteforce/bf_form.php
URL由两个主要的部分构成:协议(Protocol)和目的地(Destination)。
“协议”是告诉我们自己面对的是何种类型的Internet资源。
web中最常见的协议是http,它表示从Web中取回的是HTML文档。其他协议还有gopher,ftp和telnet等。
**“目的地“**可以是某个文件名、目录名或者某台计算机的名称。
URL即网址,它是一个网页的资源定位符,表示了网络资源的所在位置和访问方法(这个方法与编程语言中的方法无任何关系,如get和post就是两种请求方法),具有唯一性。
HTTP报文
请求报文
HTTP 请求报文由请求行、请求头、请求正文三个部分组成。
请求行:HTTP 报文的第⼀行,由空格字符分成三部分
GET /pikachu-master/vul/burteforce/bf_form.php HTTP/1.1
请求方法:GET (请求方法有两种,GET和POST)
资源路径: /pikachu-master/vul/burteforce/bf_form.php
协议/版本:HTTP/1.1
请求头字段:
字段 | 含义 |
---|---|
Host | 主要用于指定被请求资源的服务器地址和端口号 |
User-Agent | 用户客户端的浏览器信息,相当于浏览器指纹 |
Referer | 包含一个URL,代表当前URL的上一个URL |
Cookie | 记录请求者的身份认证信息 |
Accept-Charset | 用于指定浏览器接收的字符集 |
Content-Type | 用于向接收方 (浏览器或服务器) 指示实体的介质类型 (数据类型,MIME) |
Content-Length | 用于指明实体正文的长度,以字节方式存储的十进制数字来表示 |
Last-Modified | 用于指示资源的最后修改时间 |
响应报文
响应报文由状态行、响应报头、响应正文三部分组成
状态行:响应报文的第⼀行,
HTTP/1.1 200 OK
协议/版本:HTTP/1.1
响应状态码:200
描述短语:OK
响应报头:响应报文第二行开始到第⼀个空行为止的所有内容,其中包含了关于HTTP响应的重要字段。
响应报文:响应报文从第⼀个空行开始到最后的所有内容。 服务器返回资源的内容,即浏览器接 收到的HTML 代码
响应头字段:
字段 | 含义 |
---|---|
Data | 时间和日期 |
Server | Web 服务器指纹 |
Last-Modified | 服务器通过这个头信息告诉浏览器,资源的最后修改时间 |
Content-Length | 响应正文的长度 |
Content-Type | 响应正文的类型 |
Set-Cookie | cookie头,向浏览器端写入Cookie配置 信息 |
Location | 重定向目标页面 |
Refresh | 服务器通过Refresh头告诉浏览器定时刷新浏览器 |
响应状态码:
状态码 | 类型 |
---|---|
1XX | 信息性状态码 |
2XX | 成功状态码 |
3XX | 重定向状态码 |
4XX | 客户端错误状态码 |
5XX | 服务器错误状态码 |
403表示客户端没有访问该页面的权限;404表示所访问的页面不存在,即客户端请求错误