Http 协议是什么?做什么的?
- Http ( HyperText Transfer Protool ,超文本传递协议) ,是传递 html 、图片、音乐、视频等超文本的协议
- 通过 http 协议访问服务器时默认访问 80 端口;https 协议默认访问 443 端口
- 基于请求和响应:没有客户端来请求,服务端就不会响应
- 无状态:服务器本身不会记录浏览器的任何信息,每次访问都当作是其第一次访问
- 通过浏览器使用 Http 协议的格式为 http://主机ip:端口号/资源路径
请求和响应
请求信息
- 请求信息分为三部分:请求行、请求头、请求体
- 请求行又分为三部分:请求方法、请求资源的路径、协议版本
- 请求方法分为 get 、post 等
响应信息
- 响应信息分为三部分:响应行、响应头、响应体
- 响应行又分为三部分:协议版本、状态码、状态文字
请求方法
- get :在 URL 后拼接 ? ,将数据拼在其后,不同参数间以 & 分隔。不安全、效率较高、URL 长度有限,一般使用在查询场景
- post :将请求数据封装为一个请求体。安全、效率较低、可以一次传递大量数据,一般用在增删改场景
- put 、delete :常用于 restful 请求风格中
- head :与 get 基本一致,只是不返回内容。用于想确认资源是否还存在但不需要返回的场景
- trace :返回服务器最终收到的请求,用于查看 http 请求有没有被修改(如代理有时就会修改原本的请求)
- options :返回服务器支持的请求方法(可能服务器本身就不支持 options )
- 实际上 get 和 post 并无区别,我们可以在 get 请求时封装请求体,post 请求时在 url 上拼接 ? ,上述区别只是 Http 请求在语义上为了区分 get 和 post 而做出的规定