zoukankan      html  css  js  c++  java
  • HTTP学习记录:四、头信息(请求和响应)

    学习资源主要为:@小坦克HTTP相关博客

    一、请求头信息(Request Header

    请求头信息包含比较多,如下:

    1Cache头域

      if-modified-Since

      作用:把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上的实际文件的最后修改时间进行对比。如果说时间一致,那么返回304,客户端就直接使用本地缓存文件。如果时间不一致,就会返回200和新的文件内容,客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中。

      if-none-match

      作用:if-none-matchetag一起工作,工作原理是再http response中添加etag信息。当用户再次请求该资源时,将在http request中加入if-none-match信息(etag的值)。如果服务器验证资源的时候etag没有改变(该资源没有更新),将返回一个304状态告诉客户端使用本地缓存文件。否则将返回200状态和新的资源和etag。使用这样的机制将提高网站的性能。

      Pragma

      作用:防止页面被缓存,在http/1.1版本中,它和cache-control:no-cache作用一样。pargma只有有一个用法。pragmano-cache

      cache-control

      作用:这个是非常重要的规则。这个用来置顶response-requesst遵循的缓存机制。各个指令含义如下:

      cache-control:public--可以被任何缓存所缓存

      cache-control:private--内容只缓存到私有缓存中

      cache-control:no-cache---所有内容都不会被缓存

      (缓存的好处:1、较少冗余的数据传输;2、减少服务器的负担;3、加快客户端加载网页的速度)

      (F5刷新浏览器和地址栏中输入网址回车的处理方式不同:F5刷新浏览器,会去Web服务器验证缓存;后者是直接去访问有效的缓存,不会去请求服务器。)

    2client头域

      Accept

      作用:浏览器可以接受的媒体类型

      accept*/*代表浏览器可以处理所有类型

      Accept-Encoding

      作用:浏览器申明自己接收的编码方法,通常制定压缩方法,是否支持压缩,支持什么压缩方法

      User-Agent

      作用:告诉http服务器,客户端使用的操作系统和浏览器的名称和版本

      Accept-Charset

      作用:浏览器申明自己接收的字符集

    3Cookie/Login头域

      Cookie

      作用:最重要的header,将cookie的值发送给http服务器

    4Entity头域

      Content-Length

      作用:发送给http服务器数据的长度

      Content-Type

      作用:数据类型

    5Miscellaneous头域

      referer

      作用:提供了request上下文信息给服务器,告诉服务器我是从哪个链接过来的。

      origin

      作用:主要是用来说明最初请求是从哪里发起的,主要用于POST请求。

    6Transport头域

      Connection

      作用:确定传输数据后tcp的链接状态

      Connectionkeep-alive---当一个 网页打开完成后,客户端和服务器之间用于传输http数据的tcp链接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的链接。

      Connectionclose---表示一个requset完成沪,客户端与服务器之间用于传输http数据的tcp链接会关闭,当看客户端再次发送request,需要重新建立tcp链接。

      Host(发送请求时,该头域是必须的)

      作用:请求报文头域主要用于指定被请求资源的internet主机和端口号,它通常从http url中提出出来

    二、响应头信息(response header

    1Cache头域

      Date

      作用:生成消息的具体时间和日期

      Expires

      作用:浏览器会在指定过期时间内使用本地缓存

      Vary

      varyaccept-Encoding

      (如果同时存在cache-controlExpires:浏览器优先使用cache-control

    2Cookie/login头域

      P3P

      作用:用于跨域设置Cookie,这样可以解决iframe跨域访问cookie的问题

      set-cookie

      作用:非常重要的header,用于把cookie发送到客户端浏览器,每一个写入cookie都会生成一个set-cookie

    3Entity头域

      Etag

      作用:和if-None-match配合使用

      Last-modified

      作用:用于指定资源的最后修改日期和时间

      (Etag主要是为了解决Last-Modified无法解决的一些问题:1、不能精确定位文件的最后修改时间;2、文件改动太频繁,在秒以下,last-modified只能精确到秒;3、文件最后修改时间变了,但是内容未变。)

      content-type

      作用:web服务器告诉浏览器自己响应的对象的类型和字符集

      content-length

      作用:指明实体正文的长度,已字节方式存储的十进制数字来表示

      content-encoding

      作用:web服务器表明自己使用了什么压缩方法压缩响应中的对象

      content-language

      作用:web服务器告诉浏览器自己响应的对象的语言

    4miscellaneus头域

      server

      作用:指明http服务器的软件信息

      x-aspnet-version

      作用:如果网站是用asp.net开发的,这个header用来表示asp.net的版本

      X-Powered-By

      作用:表示网站是用什么技术开发的

    5Transport头域

      Connection

    6Location头域

      location

      作用:用于重定向一个新的位置,包含新的url地址

  • 相关阅读:
    Android Lock Screen Orientation
    android studio修改新项目package名称
    DevExpress控件GridView挂下拉控件无法对上值
    Datawindow.net+access数据窗口制作方法
    LR11中web_save_timestamp_param
    LR自带网站飞机订票系统 启动
    MySQL ODBC驱动安装和配置数据源
    【笔记】LR配置ODBC连接数据库进行参数化(mysql )未完待续
    【笔记】LR录制方式和常用函数
    【笔记】http1.1支持的7种请求方法
  • 原文地址:https://www.cnblogs.com/smallstone2018/p/10001456.html
Copyright © 2011-2022 走看看