万字长文总结《计算机网络http协议》强烈推荐,建议收藏

Posted 程序猿是小贺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了万字长文总结《计算机网络http协议》强烈推荐,建议收藏相关的知识,希望对你有一定的参考价值。

1.HTTP协议概述:

1.HTTP(HyperText Transfer Protocol,超文本传输协 )的协议
2.HTTP是无连接, 无状态, 工作在应用层的协议
无连接理解为:http协议本身是没有维护连接信息的, http的数据会交给网络协议栈传输层的TCP协议, 而TCP是面向连接的。
无状态:HTTP 协议自身不对请求和响应之间的通信状态进行保存。也就是说在 HTTP 这个级别,协议对于发送过的请求或响应都不做持久化处理。

2.HTTP对应的URL解释

a.使用 http: 或 https: 等协议方案名获取访问资源时要指定协议类型。不 区分字母大小写,最后附一个冒号(:)

b.登录信息(认证) 指定用户名和密码作为从服务器端获取资源时必要的登录信息(身份 认证)。此项是可选项。

c.服务器地址 ,必须指定待访问的服务器地址。地址可以是类似 hackr.jp 这种 DNS 可解析的名称,或是 192.168.1.1 这类 IPv4 地址 名,还可以是 [0:0:0:0:0:0:0:1] 这样用方括号括起来的 IPv6 地址名。

d. 服务器端口号 指定服务器连接的网络端口号。此项也是可选项,若用户省略则自动 使用默认端口号。

e. 带层次的文件路径 指定服务器上的文件路径来定位特指的资源。。

f. 查询字符串针对已指定的文件路径内的资源,可以使用查询字符串传入任意参 数。此项可选。

g.片段标识符 使用片段标识符通常可标记出已获取资源中的子资源(文档内的某个 位置)。该项也为可选 项。

3.HTTP协议的数据流:

4.HTTP协议格式:

请求:

HTTP 协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有接收到请求之前不会发送响应。

综述:

请求首行:方法 URI 协议版本

请求体:key:value的属性行

空行

正文

响应:

综述:

响应首行:协议版本 状态码 状态码解释

响应体:key:value的属性行

空行

正文

图解:

5.HTTP协议版本:

HTTP/0.9 HTTP 于 1990 年问世。那时的 HTTP 并没有作为正式的标准被建立。 现在的 HTTP 其实含有 HTTP1.0 之前版本的意思,因此被称为 HTTP/0.9。

HTTP/1.0 HTTP 正式作为标准被公布是在 1996 年的 5 月,版本被命名为 HTTP/1.0,并记载于 RFC1945。虽说是初期标准,但该协议标准至今 仍被广泛使用在服务器端。

HTTP/1.1 1997 年 1 月公布的 HTTP/1.1 是目前主流的 HTTP 协议版本。当初的 标准是 RFC2068,之后发布的修订版 RFC2616 就是当前的最新版 本。

HTTP/2.0 新 一代 HTTP/2.0 正在制订中,但要达到较高的使用覆盖率,仍需假以 时日。

6.HTTP请求方法:

6.1 GET :获取资源

GET 方法用来请求访问已被 URI 识别的资源。指定的资源经服务器端解析后返回响应内容。也就是说,如果请求的资源是文本,那就保持原样返回;

6.2 POST:传输实体主体

虽然用 GET 方法也可以传输实体的主体,但一般不用 GET 方法进行传输,而是用 POST 方法。虽说 POST 的功能与 GET 很相似,但 POST 的主要目的并不是获取响应的主体内容。

6.3 PUT:传输文件

PUT 方法用来传输文件。就像 FTP 协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求 URI 指定的位置。 但是,鉴于 HTTP/1.1 的 PUT 方法自身不带验证机制,任何人都可以上传文件 , 存在安全性问题,因此一般的 Web 网站不使用该方法。

6.4 HEAD:获得报文首部

HEAD 方法和 GET 方法一样,只是不返回报文主体部分。用于确认资源的有效性。 虽说和 GET 一样,但不返回报文主体

6.5 DELETE:删除文件

DELETE 方法用来删除文件,是与 PUT 相反的方法。但是,HTTP/1.1 的 DELETE 方法本身和 PUT 方法一样不带验证机制,所以一般的 Web 网站也不使用 DELETE 方法。

6.6 OPTIONS:询问支持的方法

OPTIONS 方法用来查询针对请求 URI 指定的资源支持的方法。

7.HTTP状态码&状态码解释

7.1 状态码类别:

7.2 2XX 成功

2XX 的响应结果表明请求被正常处理了。

7.3 200 OK

表示从客户端发来的请求在服务器端被正常处理了。

204 No Content

206 Partial Content

7.4 3XX 重定向

301 Moved Permanently

永久性重定向。

302 Found

临时性重定向

303 See Other

307 Temporary Redirect

临时重定向。

7.5 4XX 客户端错误

400 Bad Request

401 Unauthorized

认证失败

403 Forbidden

404 Not Found

7.6 5XX 服务器错误

500 Internal Server Error


该状态码表明服务器端在执行请求时发生了错误。也有可能是 Web应用存在的 bug 或某些临时的故障。

503 Service Unavailable


注明:转载请提示出处

以上就是本篇文章的重点,今天就到此结束了哈,有不同的观点或者有不同思路的朋友欢迎大家赏光私我哈,本着相互进步的原则,希望大家能多多向我提意见,谢谢~~

以上是关于万字长文总结《计算机网络http协议》强烈推荐,建议收藏的主要内容,如果未能解决你的问题,请参考以下文章

面试官一上来就问我Chrome底层原理和HTTP协议(万字长文)

炸裂!万字长文推倒HTTP,我在字节跳动等你!

炸裂!万字长文拿下HTTP 我在字节跳动等你!

炸裂!万字长文拿下 HTTP 我在字节跳动等你!

重磅干货 | 五万字长文总结 C/C++ 知识(下)

纯干货万字长文,(强烈建议收藏)一文通读Git使用教程