关于http请求和谷歌network相关字段---学习笔记

 1、http请求头部信息

  •  Accept ----浏览器能处理的内容类型 。MIME 类型(text/html、image/png、application/json等),*/* 指任意类型
  • Accept-Charset:浏览器能够显示的字符集。 
  • connection:浏览器与服务器之间连接的类型。 keep-alive网络连接就是持久的,不会关闭,使得对同一个服务器的请求可以继续在该连接上完成;也就是说:在一次tcp连接中可以连续发送多次数据,即可以保持一段时间的tcp连接,在这个保持的通道上有多个request、多个response。而不用每发一次数据就要重新进行三次握手连接,发完一次数据就要立即进行四次挥手释放连接。 这样可以提高性能和吞吐率。
  • Access-Control-Allow-Origin:响应头指定了该响应的资源是否被允许与给定的origin共享(也就是跨域)。
  • Cookie:设置当前client和server的任何Cookie,键值格式。cookie一般会设置client和server之间的唯一会话标志, node.js为例,在请求发送到server时,nodejs有一个前置过滤器对所有的请求进行拦截,判断是否带有同一会话标志cookie,如果没有会自己设置一个。
  • content-type:实体头部用于指示资源的MIME类型 media type(1)application/x-www-form-urlencoded (请求默认设置):一串字符串,提交的数据按照 key1=val1&key2=val2 的方式进行编码;(2)multipart/form-data :请求体也是一个字符串,多用于文件上传 (3)application/json:服务端消息主体是序列化后的 JSON 字符串。(4)text/xml 

 2、请求格式

  • 请求行 ; 请求方法URI协议/版本 。GET方式的请求一般不包含”请求内容”部分,请求数据以地址的形式表现在请求行
  • 请求头(Request Header);一般放用户信息
  • 空行;表示请求头和请求正文分开。
  • 请求正文;一般放一些表单数据。

 3、谷歌network查看请求,数据格式

  • query string parameters:  http中的get方法传递参数;参数会以url string的形式进行传递。即?后的字符串则为其请求参数,并以&作为分隔符。
  • form data:   content-type为application/x-www-form-urlencoded;即参数会以Form Data的形式进行传递,不会显式出现在请求url中。
  • Request Payload:   content-type为application/json,则参数会以Request Payload的形式进行传递(显然的,数据格式为JSON),不会显式出现在请求url中。

4、关于cookie和session

  • Cookie的主要内容包括:名字,值,过期时间,路径和域。以键值的方式保存于客户端.。每个浏览器存储的个数不能超过300个,每个服务器不能超过20个,数据量不能超过4K;
  • Session作用于服务端。浏览器第一次发送请求时,服务器自动生成了一HashTable和一Session ID来唯一标识这个HashTable,并将其通过响应发送到浏览器。浏览器第二次发送请求会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上。
  • 单点登录的原理是后端生成一个 session ID,设置到 cookie,后面所有请求浏览器都会带上cookie,然后服务端从cookie获取 session ID,查询到用户信息。

5、关于http的强缓存和协商缓存

  • 强缓存(也是本地缓存);是http中的header部分的Expires和Cache-control两个字段来控制的。
    • 普通的刷新页面(使用的是协商缓存),并不会清除浏览器缓存的数据。浏览器客户端不会向服务端发送请求,直接读取浏览器缓存的数据。Cache-Control:no-cache 和 Pragma:no-cache。
    • 命中规则:则会直接返回浏览器缓存的数据库。   未命中规则:浏览器在缓存数据库里面未找到数据,则浏览器向服务端发送请求。
  • 协商缓存(也是弱缓存)。是服务器端来判断是缓存数据是不是可以使用;所以客户端和服务器是需要标识,以此让服务器知道是否能试用缓存数据返回给客户端。
    • header字段:Etag 和 If-None-Match、 Last-ModifiedIf-Modified-Since
    • 客户端缓存数据库获取缓存数据标识 ---缓存数据库返回标识---客户端请求服务端验证缓存数据标识是否失效-
      • 未失效:服务端通知客户端未失效,客户端获取缓存数据库数据
      • 失效:服务端返回新数据和新的缓存标识,客户端将新的数据和标识存入缓存数据库

 

 

你可能感兴趣的:(请求)