这是我参与第四届青训营笔记创作活动的第四天
HTTP and the World Wide Web
1.内容、定义、特点
超文本传输协议,可以看作是一个计算机向另一个计算机索取文档的语言
HTTP属于应用层协议(application protocols),四个层级中的最高层,TCP层,IP层,硬件层不是它考虑的层面
HTTP是web浏览器和web服务器在Internet上相互通信使用的协议。
它是一个应用层协议,因为它位于协议栈中的TCP层之上,特定的应用程序使用它来相互通信。在这种情况下,应用程序是web浏览器和web服务器。
HTTP是无状态的协议(不会和其他的request进行关联,不会保留任何状态)
基于TCP协议。TCP是客户端(web浏览器)向web服务器发送web元素的请求,如网页和图像。服务器处理请求后,客户端和服务器之间的连接就会断开。必须为每个请求建立一个新的连接。大多数协议都是面向连接的。这意味着相互通信的两台计算机在Internet上保持连接的打开状态。但是HTTP不会。在客户端发出HTTP请求之前,必须与服务器建立一个新的连接。
超文本传输协议HTTP (Hypertext Transfer Protocol)是万维网的基础协议,用于通过超文本链接加载网页。
HTTP的典型流程包括客户机向服务器发出请求,然后服务器发送响应消息。
2.HTTP请求包括以下内容:
- HTTP version type
- a URL
- an HTTP method
- HTTP request headers
- Optional HTTP body.
3.HTTP方法(也称HTTP动作):指的是希望从查询的服务器获得的操作,如GET、POST 、PUT、DELETE等方法
4.HTTP request header:
在键值对中包含了核心信息,如浏览器类型、请求什么数据等信息
Example of HTTP request headers from Google Chrome's network tab:
5.HTTP request body
body指的是信息传输的正文部分,也可以说是数据包的正文部分;
HTTP请求的正文包含提交给web服务器的任何信息,比如用户名和密码,或者表单中输入的任何其他数据。
6.HTTP response
HTTP响应是web客户端(通常是浏览器)从Internet服务器接收到的响应HTTP请求的响应。这些响应基于HTTP请求中所请求的内容来传递有价值的信息。
7.HTTP status code
HTTP状态码是三位数的代码,通常用来表示HTTP请求是否已成功完成。
状态码包含下面5种:
- 1xx Informational
- 2xx Success
- 3xx Redirection
- 4xx Client Error
- 5xx Server Error
状态码 ‘1’ 表示消息响应
状态码 ‘2’ 开头说明请求成功,最常见的就是200, 表示OK的状态码
状态码 ‘3’ 表示重定向
状态码 ‘4’ 意味着客户端出错,(客户端输入了错误的URL,会返回404,表示page not found)
状态码 ‘5’ 意味着 服务器端出现了问题(服务器崩溃,为502)
重要的状态码:
-
HTTP response header :
与HTTP请求非常相似,HTTP响应带有传递重要信息的头,比如响应体中发送的数据的语言和格式。
Example of HTTP response headers from Google Chrome's network tab:
-
HTTP response body:
对“GET”请求的成功HTTP响应通常有一个包含请求信息的正文。在大多数web请求中,这是HTML数据,web浏览器将其转换成网页。
就是返回给HTTP请求的响应内容
10.是否可以通过HTTP发起DDos(分布式拒绝服务,Distributed Denial of Service,简称DDoS)攻击?
HTTP是一个“无状态”协议,这意味着每个命令独立于任何其他命令运行。
在HTTP协议的较新版本(HTTP 1.1及以上版本)中,持久连接允许多个HTTP请求通过持久TCP连接,从而提高了资源消耗。在DoS / DDoS攻击中,大量的HTTP请求可以用来对目标设备进行攻击,属于应用层攻击或七层攻击。
所以可以通过HTTP发起DDos攻击
11.在客户机和服务器之间有许多实体,统称为代理,它们执行不同的操作,例如充当网关或缓存。
实际上,在浏览器和处理请求的服务器之间有更多的计算机:有路由器、调制解调器等等。由于Web的分层设计,这些都隐藏在网络和传输层中(属于TCP层和IP层)。HTTP在最上面,在应用层。