JavaScript学习笔记(拾伍)

61 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第7天,点击查看活动详情

HTTP协议

HTTP 协议的主要特点 简单快捷、灵活、无连接(连接一次就会断开,不会继续保持连接)、无状态(第一次请求结束后断开,第二次请求 服务端并没有记住之前的状态)
报文:

  • 请求报文(请求行、请求头、空行、请求体)
  • 响应报文(状态行、响应头、空行、响应体)

HTTP协议 : [超文本传输协议],详细规定了 浏览器万维网服务器 之间互相通信的规则。

HTTP1.0 定义了三种请求方法:
    GET 请求指定页面信息,并返回实体主体。
  POST 向指定资源提交数据进行处理请求,数据被包含在请求体中。
  HEAD 类似于GET请求,返回的响应中没有具体内容,用于获取报头
HTTP1.1 新增了六种请求方法 OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT

HTTP 方法

  • GET:获取资源
  • POST:传输资源
  • put:更新资源
  • DELETE:删除资源
  • HEAD:获取报文首部
  1. GET相对不隐私,post 相对隐私 浏览器回退时,get 不会重新请求,但post 会
  2. get请求会被浏览器主动缓存,但post不会 get请求的参数会保留在浏览器的历史记录中
  3. get请求在URL中传递的参数有大小限制 get参数直接暴露在url上,相对不安全,post参数放在请求体中

请求报文

image.png

  • 请求报文:行:包括请求方法、请求的url、http协议及版本。
  • 请求头:一大堆的键值对。
  • 空行 指的是:当服务器在解析请求头的时候,如果遇到了空行,则表明,后面的内容是请求体。
  • 请求体:数据部分。

响应报文

image.png

  • 状态行:http协议及版本、状态码及状态描述。
  • 响应头
  • 空行
  • 响应体

http 响应状态码

  1. 1XX: 服务器收到请求,需要请求者继续操作
  2. 2XX: 成功
  3. 3XX: 重定向,需要进一步的操作以完成请求
  4. 4XX: 客户端错误
  5. 5XX: 服务器错误
  • 200: 客户端请求成功
  • 300: 资源等被永久转移到其它URL
  • 301:所请求页面已经转移到新的URL
  • 400:客户端请求有语法错误
  • 401:请求未经授权
  • 403:被请求页面访问被禁止
  • 404: 请求资源不存在
  • 500: 内部服务器错误
  • 503:请求未完成,服务器宕机

持久链接

  1. 轮询:http1.0中,客户端每隔很短时间,都会对服务器发起请求,查看是否有新消息(实际上对服务器、客户端都造成大量的性能浪费)
  2. 长链接:http1.1中,通过Connection:keep-alive 进行长链接。客户端只请求一次,但是服务器会将继续保持连接。(默认请求一次,响应一次; 管线化会把请求打包,一次性发过去,一次性响应回来)