一、HTTP 协议介绍
HTTP(HyperText Transfer Protocol)超文本传输协议,是互联网中客户端与服务器之间传输数据的协议。HTTP 无连接、无状态,每次请求都是独立的,每次请求都要重新创建新链接,需要 session 和 cookie 保存登录信息状态;始终由客户端发送请求,服务端不会向客户端主动发送请求;可以传输多种数据格式,如音频、视频、图片等。
二、HTTP 协议工作过程
当我们在浏览器输入一个网址时,浏览器会给服务器发送一个 HTTP 请求,服务器收到这个请求之后,经过计算返回一个 HTTP 响应。

客户端是主动访问的一端发起请求的一端,服务端是被动接受请求的一端。请求是客户端发送给服务端的数据,响应是服务端返回给客户端的数据。
三、HTTP 协议格式
了解了 HTTP 就是网络通信的协议之后,我们来大致看看协议请求和响应的协议格式。
请求格式

请求格式包含请求方法、URL、HTTP 版本、请求报头以及正文;其中元素之间用空格和换行符隔开,用于区分不同元素,用于解决粘包问题。
响应格式

响应格式包含 HTTP 版本、状态码、状态码描述、响应报头、响应正文。
四、HTTP 协议请求(Request)
下面我们来逐一介绍请求中的元素。
4.1 URL
URL(Uniform Resource Locator)统一资源定位符,简单说就是我们日常生活中的网址,我们通过这个唯一的 URL 就能访问到特定的资源。
URL 由六部分组成,我们先放上一个网址:
http://www.example.com:8080/product/list?category=book&page=1#top
首先是 http,规定 URL 获取资源的方式,类似的方式还有 https、ftp 等;www.example.com 相当于门牌号,通过这个门牌号我们可以解析出具体的 IP 地址,后面的 8080 就是对应的端口号;/product/list 就是在该地址的根目录下所要访问的具体文件;接下来就是客户端向服务端传递的参数,由 ? 进行划分,传递第一个参数 category = book,第二个参数 page=1,参数之间用 & 分隔;最后是片段,用 # 分隔,用来定位网页的具体位置。
4.2 认识 Method
核心请求方法有五种:GET、POST、PUT、DELETE、PATCH;我们日常使用的 GET、POST 占比最高。
4.2.1 GET
GET 的核心是从服务器中要东西,参数会拼在 URL 当中,因此我们肉眼就可以看见,它的安全性不高,容易暴露参数信息。






