Ajax2|青训营笔记

51 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 24 天

学习笔记

HTTP 报文

HTTP(hypertext transport protocol)协议『超文本传输协议』,协议详细规定了浏览器和万维网服务器之间互相通信的规则。

请求报文

重点是格式与参数

行      POST  /s?ie=utf-8  HTTP/1 
头      Host: www.baidu.com
        Cookie: BAIDUID=AD3B0FA706E; BIDUPSID=AD3B0FA706;    
        Content-type: application/x-www-form-urlencoded
        User-Agent: chrome 83
空行
体      username=admin&password=admin

注:post请求才有请求体

Request Headers

Request Header说明
Accept浏览器可接收的数据格式(如: /
Accept-Language客户端接收的语言类型(如:zh-CN,en-US)
Connection维护客户端和服务端的连接关系(如:Keep-Alive)
Host连接的目标主机和端口号(如:localhost:8080)
User-Agent客户端版本号的名字
Accept-Encoding客户端能接收的压缩数据的类型(如:gzip)
Cookie客户端暂存服务端的信息
Content-type发送数据的格式,get请求没有(如:application/json)

响应报文

行      HTTP/1  200  OK
头      Content-Type: text/html;charset=utf-8
       Set-Cookie: BD_CK_SAM=1;path=/
        Content-length: 2048
        Content-encoding: gzip
空行    
体      <html>
            <head>
            </head>
            <body>
                <h1>尚硅谷</h1>
            </body>
        </html>
        (html 文本/json 文本/js/css/图片...)
  • 负载(Payload)用来查看请求发送的查询字符串和form data
  • Preview用来查看解析后的返回数据
  • Response用来查看返回数据

Response Headers

Response Headers说明
Content-Type服务端发送的类型及采用的编码方式(如:text/html; charset=utf-8)
Content-Encoding服务端能够发送压缩编码类型(如:gzip)
Content-Length服务端发送的压缩数据的长度(如:128)
Set-Cookie服务端发送到客户端的暂存数据
Cache-Control缓存相关
Last-Modified缓存相关
Etag缓存相关

post请求体参数格式

  • Content-Type: application/x-www-form-urlencoded;charset=utf-8 用于键值对参数,参数的键值用=连接, 参数之间用&连接 例如: name=%E5%B0%8F%E6%98%8E&age=12
  • Content-Type: application/json;charset=utf-8 用于 json 字符串参数 例如: {"name": "%E5%B0%8F%E6%98%8E", "age": 12}
  • Content-Type: multipart/form-data 用于文件上传请求

常见的响应状态码

状态码

  • 1xx:指示信息-表示请求已接收,继续处理

  • 2xx:成功-表示请求已被成功接收

  • 3xx:重定向-要完成请求必须进行更进一步的操作

  • 4xx:客户端错误-请求有语法错误或请求无法实现

  • 5xx:服务器错误-服务器未能实现合法的请求 常见的http状态码

  • ****200:客户端请求成功

  • 206:客户发送带有range头的GET请求,服务器完成了它

  • 301:重定向(永久)

  • 302:重定向(临时)

  • 304:资源未被修改,有缓存

  • 403:请求被拒绝

  • 404:资源未找到

  • 500:服务器错误

  • 504:网关超时

不同类型的请求及其作用

  • GET: 从服务器端读取数据(查)
  • POST: 向服务器端添加新数据 (增)
  • PUT: 更新资源 (改)
  • DELETE删除服务器端数据 (删)