• HTTP请求/响应报文结构


    HTTP协议版本有两种:HTTP1.0和HTTP1.1

    它们俩的区别在于:HTTP1.0对于每个连接都只能传送一个请求和响应,请求后就会关闭,HTTP1.0没有Host字段;而HTTP1.1在同一个连接中可以传送多个请求和响应,多个请求可以重叠和同时进行,HTTP1.1必须有Host字段

    http请求过程:

    1)请求超链接——》客户端发送请求到服务器,请求包内容:协议版本号,求情地址,请求方式,请求头和请求参数

    2)服务器接受请求——》开始处理请求——》将响应包返回给客户端,响应包内容:协议版本号,状态码,响应数据

    3)前端收到响应包——》根据响应数据开始做相应处理

    常见的请求头字段含义:

    请求行:标明了请求方法,请求URL,HTTP协议及版本

    Accept:浏览器可接受的MIME类型,也就是代表着浏览器希望接收什么样的文件

    Accept-Charset:浏览器可接受的字符集

    Accept-Encoding:浏览器能够进行解码的数据编码方式

    Accept-Language:浏览器所接受的语言

    Authorization:授权信息

    Content-Length:表示请求消息正文的长度

    Host:客户机通过这个头告诉服务器,想访问的主机名

    If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间

    Referer:表明客户机是从哪里来的

    User-Agent:User-Agent头域的内容包含发出请求的用户信息,浏览器类型

    Pragma:指定“no-cache”值表示服务器必须返回一个刷新后的文档,即使它是代理服务器而且已经有了页面的本地拷贝。

    Connection:处理完这次请求后是否断开连接还是继续保持连接。

    UA-Pixels,UA-Color,UA-OS,UA-CPU:由某些版本的IE浏览器所发送的非标准的请求头,表示屏幕大小、颜色深度、操作系统和CPU类型。

    响应头

    常见的响应头字段含义:

    响应行:报文协议及版本,状态码以及状态描述

    Allow:服务器支持哪些请求方法(如GET、POST等)。

    Content-Encoding:文档的编码(Encode)方法。

    Content-Length:表示内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据。

    Content- Type:表示后面的文档属于什么MIME类型

    Expires:告诉浏览器把回送的资源缓存多长时间,-1或0则是不缓存

    Server:服务器通过这个头告诉浏览器服务器的类型

    WWW-Authenticate:客户应该在Authorization头中提供什么类型的授权信息

    Get和Post的区别:

    GET请求的数据会附在URL之后,即数据直接显示在url中,以?分割URL和传输数据,参数之间以&相连

    如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0%E5 %A5%BD。

    如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如:%E4 %BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。

    而POST方法则会把数据放到请求数据字段中以&分隔各个字段,请求行不包含数据参数,地址栏也不会额外附带参数。

    另外GET方法是没有报文体的

    状态码:

    1xx:表示请求已接收,继续处理。比如100表示服务器正在处理客户请求

    2xx:表示请求已被成功接收,理解,接受。 比如200表示请求成功

    3xx:表示客户端被重定向到其他资源。  比如301表示本网页永久性转移到另一个地址;302表示重定向,浏览器自动跳转新连接;304表示上次文档已经保存,还可以继续使用

    4xx:请求有语法错误或请求无法实现   比如400表示请求有语法错误浏览器不能解析;403表示拒绝提供服务;404表示请求资源不存在

    5xx:服务器执行请求时遇到错误    比如500服务器错误;503服务器当前不能处理,请稍后再试

     

  • 相关阅读:
    【小程序】文本超出则省略号
    【wx小程序】读懂app.js
    【js】某字符串多次替换
    【小程序】本地资源图片无法通过 WXSS 获取
    【小程序】(一)注册开始小程序开发
    【小程序】配置本地接口开发
    【css】文本超出行数以省略号显示
    【webstorm】project目录树显示不出
    【Nodejs】Browsersync同步浏览器测试
    获取指定包名下继承或者实现某接口的所有类(扫描文件目录和所有jar)
  • 原文地址:https://www.cnblogs.com/xiaoqiyue/p/8642079.html
Copyright © 2020-2023  润新知