HTTP常用知识点

81 阅读3分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路。

1.5 HTTP协议

要将HTTP讲明白还是要花很多功夫的,各大平台上和MDN中都有很多很优秀的博客,如果想要深入理解需要阅读很多的资料和实践,这里我介绍一些非常基本的HTTP的知识点,以及初入Java Web可以用到的知识点,后续学的越深,需要学习的越多。

1.1 什么是HTTP协议

HTTP——Hypertext Transfer Protocol 超文本传输协议

  1. 超文本是什么?

    首先说到文本,我想到的是电脑自带的txt记事本,这个是纯文本文件,而超文本就是不单单只有文本,还会有:图片、音频、视频等其他文件,那这就是超文本文件。

  2. 传输

    这里我们就可以理解为,两台电脑要进行通信、那将电脑A的信息发给电脑B的过程就是传输

  3. 协议

    就是大家都要遵守的一个标准

用大白话来说就是超文本是你去快递站寄的东西,里面有各种各样的物品。你将你的东西拿去快递站寄出去就要通过一定的手续,按照快递公司的要求填写信息,在你付完钱,就要帮你送货,这就是协议。而快递公司将你的快递送到指定的地点那就是传输

1.2 HTTP报文结构

报文的结构如下,其中起始行和请求头部是必须有的,而实体可有可无,而且请求头部和实体之间要空一行。

1.5http.png

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%都是使用GETPOST、下面是请求方法相关的表格,可以大概看一下,主要是注意GETPOST的区别,这个大家可以自己去尝试编程一下,最直观的区别就是:使用GET在url上会显示值,而POST会隐藏。

序号方法描述
1GET请求指定的页面信息,并返回实体主体。
2HEAD类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
3POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
4PUT从客户端向服务器传送的数据取代指定的文档的内容。
5DELETE请求服务器删除指定的页面。
6CONNECTHTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
7OPTIONS允许客户端查看服务器的性能。
8TRACE回显服务器收到的请求,主要用于测试或诊断。
9PATCH是对 PUT 方法的补充,用来对已知资源进行局部更新 。

1.4 HTTP状态码

RFC 规定 HTTP 的状态码为**「三位数」**,第一个数字定义了响应的类别,被分为五类:

  • 「1xx」: 代表请求已被接受,需要继续处理。
  • 「2xx」: 表示成功状态。
  • 「3xx」: 重定向状态。
  • 「4xx」: 客户端错误。最常见的就有404。
  • 「5xx」: 服务器端错误。