本文已参与「新人创作礼」活动, 一起开启掘金创作之路。
1.5 HTTP协议
要将HTTP讲明白还是要花很多功夫的,各大平台上和MDN中都有很多很优秀的博客,如果想要深入理解需要阅读很多的资料和实践,这里我介绍一些非常基本的HTTP的知识点,以及初入Java Web可以用到的知识点,后续学的越深,需要学习的越多。
1.1 什么是HTTP协议
HTTP——Hypertext Transfer Protocol 超文本传输协议
-
超文本是什么?
首先说到文本,我想到的是电脑自带的txt记事本,这个是纯文本文件,而超文本就是不单单只有文本,还会有:图片、音频、视频等其他文件,那这就是超文本文件。
-
传输
这里我们就可以理解为,两台电脑要进行通信、那将电脑A的信息发给电脑B的过程就是传输
-
协议
就是大家都要遵守的一个标准
用大白话来说就是超文本是你去快递站寄的东西,里面有各种各样的物品。你将你的东西拿去快递站寄出去就要通过一定的手续,按照快递公司的要求填写信息,在你付完钱,就要帮你送货,这就是协议。而快递公司将你的快递送到指定的地点那就是传输
1.2 HTTP报文结构
报文的结构如下,其中起始行和请求头部是必须有的,而实体可有可无,而且请求头部和实体之间要空一行。
HTTP报文里都都有什么内容呢?
接下来我们用一个简短的,信息不多的报文来看解析一下
GET /index.html HTTP/1.1
Host: developer.mozilla.org
Accept-Language: fr
首先是起始行:
GET /index.html HTTP/1.1
GET代表的是HTTP的请求方法,这也是我们最常用的一种请求方法
/Index.html代表的是要访问的路径
HTTP/1.1代表的是使用的HTTP版本
这三者分别要空一行。
接着是头部,这个头部很简短
Host: developer.mozilla.org
Accept-Language: fr
Host代表的是对象所在的主机
Accept-Language告诉主机,你想要的主机对象是法语版本
想看HTTP报文的解析可以去网上差别的资料,这里主要是介绍一下报文的格式
1.3 HTTP的请求方法
HTTP的请求方法是我们在编程的时候需要选择的,其中99.9999999%都是使用GET和POST、下面是请求方法相关的表格,可以大概看一下,主要是注意GET和POST的区别,这个大家可以自己去尝试编程一下,最直观的区别就是:使用GET在url上会显示值,而POST会隐藏。
| 序号 | 方法 | 描述 |
|---|---|---|
| 1 | GET | 请求指定的页面信息,并返回实体主体。 |
| 2 | HEAD | 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头 |
| 3 | POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。 |
| 4 | PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
| 5 | DELETE | 请求服务器删除指定的页面。 |
| 6 | CONNECT | HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。 |
| 7 | OPTIONS | 允许客户端查看服务器的性能。 |
| 8 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
| 9 | PATCH | 是对 PUT 方法的补充,用来对已知资源进行局部更新 。 |
1.4 HTTP状态码
RFC 规定 HTTP 的状态码为**「三位数」**,第一个数字定义了响应的类别,被分为五类:
- 「1xx」: 代表请求已被接受,需要继续处理。
- 「2xx」: 表示成功状态。
- 「3xx」: 重定向状态。
- 「4xx」: 客户端错误。最常见的就有404。
- 「5xx」: 服务器端错误。