• HTTP报文


    HTTP报文

    可以参考相关链接

    https://blog.csdn.net/lyn_00/article/details/84953763

    https://www.cnblogs.com/kikochz/p/12751405.html

    https://www.cnblogs.com/ldq2016/p/9055933.html

    报文 = 报文行 + 报文头 + 报文体

    请求报文

    请求行
    <im

    POST: 一般请求行种没有参数,有请求体,具体数据存在请求体中,注意这里用POSTMAN或是fiddler模拟的请求不能模拟出浏览器的效果

    • PUT:更新请求
    • DELETE:删除请求

    请求头

    • User-Agent:表示首部包含了一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号

    • Connection:如keep-alive , 表示tcp连接不关闭,不会永久保持连接,服务器可设置,缺省值

    • Accept:表示请求接受响应报文必须是该MIME类型的

      accept: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
      

      这里的 */* 表示接收所有MIME 类型 , 所以前面表示接收的顺序
      application/json 也是MIME类型

    • Accept-Charset:告诉服务器能发送哪些字符集

    • Accept-Encoding:告诉服务器能发送哪些编码方式

    • Authorization:授权信息

    • Referer:请求来自哪里,以URL的方式显示

    • Host:接受请求的主机名和端口,80端口不用显示

    • Cookie:客户端用它像服务器发送数据

    • Content-Type:请求体内容的类型,get没有请求体所以没有该属性

      具体参考:https://www.cnblogs.com/kikochz/p/13546104.html

    • Content-Length:请求体的长度

    • DNT(do not track):表明用户对于网站的追踪偏好

      0代表愿意被追踪

      1代表不愿意被追踪

    空行

    告诉服务端请求头部到此为止

    请求体

    • GET没有请求体

    • POST有请求体

    应答报文

    响应行

    常见状态码参考:https://www.cnblogs.com/kikochz/p/12840652.html

    • 状态码

    响应头

    参考:https://www.cnblogs.com/ldq2016/p/9055933.html

    • Connection:如keep-alive , 表示tcp连接不关闭,缺省值。使用同一个TCP连接来接收多个请求和响应。

    • Content-Length:响应体的长度

    • Content-Type:响应体内容的类型

    • Content-Disposition:告诉浏览器以下载方式打开数据

    • Last-Modified:在浏览器第一次请求某一个URL时,服务器端的返回状态200,内容是你请求的资源,同时有一个Last-Modified的属性标记(响应头)此文件在服务器端最后被修改的时间,格式类似这样:Last-Modified:Tue,24 Feb 2009
      客户端第二次请求此URL时,根据HTTP协议的规定,浏览器会向服务器传送If-Modified-Since报头(请求头),询问该事件之后文件是否有被修改过,如果服务器端的资源没有变化,则自动返回HTTP:304状态码,内容为空,这样就节省了传输数据量。当服务器端代码发生改变或者重启服务器时,则重新发出资源,返回和第一次请求时类似。从而保证不向客户端重复发出资源,也保证当服务器有变化时,客户端能够得到最新的资源。

    • Set-Cookie:服务端向客户端发送cookie,前端通过document.cookie获取

      例如:

      响应头中有Set-Cookie: username=JasonChi,那么浏览器会在当前页面所在域名(cookie不能跨域)设置cookie字符串。

      当浏览器再次发送请求时,浏览器默认会自动将cookie中的字符串放在请求头中的Cookie项中发送给Web服务器。

    • Expires:缓存的有效时间,如果和Cache-Control中的max-age同时存在,Expires优先级高

    • Cache-Control:告诉浏览器如何控制响应内容的缓存

      具体参考https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Cache-Control

      • private:内容只缓存到私有缓存中(仅客户端可以缓存,代理服务器不可缓存)
      • public:所有内容都将被缓存(客户端和代理服务器都可缓存)
      • max-age= xxx :设置缓存存储的最大周期,超过这个时间缓存被认为过期(单位秒)。与Expires相反,时间是相对于请求的时间。
      • no-cache: 在发布缓存副本之前,强制要求缓存把请求提交给原始服务器进行验证(协商缓存验证)。
      • no-store:所有内容都不会被缓存到缓存或 Internet 临时文件中
    • Location:标明请求重定向后的URL,仅在与3xx(重定向)或201(已创建)状态响应一起使用时才提供含义。

    响应体

  • 相关阅读:
    C++的Socket的使用源码
    一些程序技术简介
    VMware安装步骤既常见问题
    操作系统和环境准备
    第一章-硬件组成
    python之面向对象
    指向方法之委托(一)
    Django之URL控制器(路由层)
    python之字符编码(四)
    python之字符编码(三)
  • 原文地址:https://www.cnblogs.com/kikochz/p/13546127.html
Copyright © 2020-2023  润新知