HTTP 的工作流程
-
和服务器建立链接
-
建立链接后,发送一个请求给服务器(请求)
-
服务器接受到请求以后进行相应的处理并给出一个回应(响应)
-
断开于服务器的链接
和服务器建立链接
-
需要保证客户端的接收和发送正常,服务器端的接收和发送正常
-
这里就涉及到一个东西叫做
TCP/IP
协议 -
建立链接的主要步骤叫做
三次握手
-
1.客户端发送一个消息给到服务端
-
2.服务端回给客户端一个消息
-
客户端再回给服务端一个消息
-
至此,依照
TCP/IP
协议的建立链接就建立好了 -
双方都知道双方可以正常收发消息
-
就可以进入到第二步,通讯了...
断开于服务端的链接
-
之前我们的建立链接是基于
TCP/IP
协议的三次握手
-
我们的断开链接是基于
TCP/IP
协议的四次挥手
-
客户端发送一个我要断开的消息给服务端
-
服务端接受到以后发送一个消息告诉客户端我已经进入关闭等待状态
-
服务端再次发送一个消息告诉客户端,这个是我的最后一次消息给你,当我再接受到消息的时候就会关闭
-
客户端接受到服务端的消息以后,告诉服务器,我已经关闭,这个是给你的最后一个消息
-
常见的 HTTP 请求方式
-
每一个 HTTP 请求在请求行里面会有一个东西叫做请求方式
-
不同的请求方式代表的含义不同
-
GET: 一般用于获取一些信息使用(获取列表)
-
POST: 一般用于发送一些数据给服务端(登录)
-
PUT: 一般用于发送一些数据给服务端让其添加新数据(注册)
-
DELETE: 一般用于删除某些数据
-
HEAD: 类似于 GET 的请求,只不过一般没有响应的具体内容,用于获取报文头
-
CONNECT: HTTP/1.1 中预留的方式,一般用于管道链接改变为代理的时候使用
-
PATCH: 是和 PUT 方式类似的一个方式,一般用于更新局部数据
-
OPTIONS: 允许客户端查看服务端性能
-
-
get和post的区别
-
区别 get post 发送形式不同 参数以 querystring
的形式发送,也就是直接拼接在 请求路径的后面参数以 request body
的形式发送,也就是放在请求体中浏览器缓存 GET 请求会被浏览器主动缓存 POST 请求不会被浏览器主动缓存,除非手动设置 参数长度限制不同 GET 请求根据不同的浏览器对长度是有限制的 POST 请求理论上是没有限制的,除非服务端做了限制 安全性 较差 较好 浏览器访问 可以直接访问,可以刷新和后退 不可以(刷新后台的数据需要重新来传送)