JS——HTTP 协议
HTTP——(hypertext transfer protocol)超文本传输协议
1)HTTP协议主要特点
① 简单快速:URI(Uniform Resource Identifiers, 统一资源符)是固定的;
② 灵活:通过HTTP协议可传输各种类型的数据;
③ 无连接:连接一次后就会断开;
④ 无状态:单从HTTP协议不能区分前后登录者身份;
2)HTTP报文的组成部分
① 请求报文:请求行——请求头——空行——请求体;
② 响应报文:状态行——状态头——空行——响应体;
3)HTTP的方法
GET——获取资源;
POST——传输资源;
PUT——更新资源;
DELETE——删除资源;
HEAD——获取报文首部;
4)GET 和 POST 的区别
(浏览器回退、缓存、请求参数保留、编码方式、参数长度、通过…传递)
① GET在浏览器回退时是无害的,POST则会再次提出请求;
② GET请求会被浏览器主动缓存,POST则不会,除非手动设置;
③ GET请求参数会被浏览器主动保留,POST则不会被保留;
④ GET请求只能通过URL编码,POST则支持多种编码方式;
⑤ GET请求在URL中传递的参数长度是有限的,POST 没有限制;
⑥ GET 参数通过URL传递,POST被* 放在Request body中**;
5)HTTP状态码
1xx:指示信息-表示请求已接收,继续处理
2xx:成功-表示请求已被成功接收
3xx:重定向-要完成请求必须进行进一步的操作
4xx:客户端错误-请求有语法错误或请求无法实现
5xx:服务器错误-服务器未能实现合法的请求
※200: OK 服务器成功处理了请求(这个是我们见到最多的)
204: No Content 请求成功处理,没有实体的主体返回
206: Partial Content GET范围请求已成功处理
※301/302: Moved Permanently(重定向)请求的URL已移走。Response中应该包含一个Location URL, 说明资源现在所处的位置(永远重定向)
※303: See Other 临时重定向,期望使用GET定向获取(临时重定向)
304: Not Modified 发送的附带条件请求未满足
307: Temporary Redirect 临时重定向,POST不会变成GET
400: Bad Request 请求报文语法错误或参数错误
401: Unauthorized 需要通过HTTP认证,或认证失败
※403: Forbidden 请求资源被拒绝(页面禁止访问)
※404: Not Found(页面丢失)未找到资源
500: Internal Server Error 服务器故障或Web应用故障
501: Internal Server Error服务器遇到一个错误,使其无法对请求提供服务
503: Service Unavailable 服务器超负载或停机维护
6)HTTP持久连接
HTTP协议采用“请求-应答”模式
① 普通模式,即非Keep-Alive模式时,每个请求/应答客户和服务端都要重建一个连接,完成之后立即断开连接(HTTP协议为无连接的协议)。
② Keep-Alive(持久连接、连接重用),客户端到服务端的连接持续有效,当出现对服务端的后续请求时,Keep-Alive功能避免了建立或者重新建立连接。
(只有HTTP1.1版本支持持久连接)
7)HTTP管线化
- 原理:把请求打包一次发送,把响应一次打包一次返回
- 特点(说2句即可):
① 管线化机制通过持久连接完成,仅HTTP/1.1支持此技术;
② 只有GET和HEAD请求可进行管线化,而POST有所限制;
③ 初次创建连接时不启动管线机制,因为对方(服务器)不一定支持HTTP/1.1版本的协议;