• http协议构成整理


    1. HTTP请求

    1.1 请求报文格式:

    • HTTP的请求由3部分组成:请求行、请求头、请求体。
    • SP代表空格、CRLF代表换行
    • 浏览器必须已这个格式发送请求,服务器才能正常解析和响应。

    1.2 请求报文示例

    1.3 请求方法

    • GET 请求获取Request-URI所标识的资源
    • POST 在Request-URI所标识的资源后附加新的数据,常用于提交表单。
    • HEAD 请求获取由Request-URI所标识的资源的响应消息报头
    • PUT 请求服务器存储一个资源,并用Request-URI作为其标识
    • DELETE 请求服务器删除Request-URI所标识的资源
    • TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断
    • CONNECT 保留将来使用
    • OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求

    get和post是最常用的方法,简单来说,前者用于获取数据,后者用于提交数据。

    2. HTTP响应

    2.1 响应报文格式:

    • HTTP的响应也是由3个部分组成:响应行、响应头,响应体
    • 响应行:status code 表示响应的状态码,description是描述信息。
    • 同样 SP代表空格、CRLF代表换行,
    • 响应必须以这种规范格式发送给浏览器,浏览器才能正常解析并显示。

    2.2 响应报文示例

    2.3响应码

    200段是成功;300段需要对请求做进一步的处理;400段表示客户端请求错误;500段是服务器的错误
    常见响应码:

    • "200" : OK
    • "302" : Found 重定向.
    • "400" : Bad Request 错误请求,发出错误的不符合Http协议的请求
    • "403" : Forbidden 禁止
    • "404" : Not Found 未找到。演示访问一个不存在的页面看报文
    • "500" : Internal Server Error 服务器内部错误。演示页面抛出异常。
    • "503" : Service Unavailable。一般是访问人数过多。

    PS:会在文章的末尾为大家提供一份HTTP状态码大全的文档。

    3. HTTP消息报头

    HTTP消息报头分4类:普通报头、请求报头、响应报头、实体报头
    每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的。

    3.1 普通报头

    应用于所有请求和响应消息且和请求体与响应体无关的信息就存放在普通报头中。

    • Cache-Control: no-cache (用于指示请求或响应消息缓存)
    • Date 普通报头域表示消息产生的日期和时间
    • Connection: close/keep-alive (是否开启长连接)

    3.2 请求报头

    客户端向服务器端传递请求的附加信息以及客户端自身的信息存放在请求报头
    常用的请求报头:

    • Accept: text/html,application/xhtml+xml,application/xml; 指定客户端接受哪些类型的信息。
    • Accept-Charset: iso-8859-1,gb2312 客户端接受的字符集 (缺省是任何字符集都可以接受。)
    • Accept-Encoding: gzip,deflate,sdch 可接受的内容编码。 (缺省是各种内容编码都可以接受。)
    • Accept-Language: zh-CN,zh 指定语言。(缺省各种语言都可以接受。)
    • Authorization 用于证明客户端有权查看某个资源
    • Host: www.cnblogs.com 被请求资源的Internet主机和端口号 (缺省端口号:80) 这个报头是必需的
    • User-Agent: Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.0) 操作系统、浏览器和其它属性

    3.3 响应报头

    响应报头允许服务器传递不能放在状态行中的附加响应信息,以及关于服务器的信息和对Request-URI所标识的资源进行下一步访问的信息。
    常用的响应报头:

    • Location 响应报头域用于重定向接受者到一个新的位置
    • Server:Apache-Coyote/1.1 服务器信息

    3.4 实体报头

    请求和响应消息都可以传送一个实体。
    常用的实体报头:

    • Content-Encoding: text/html; charset=utf-8 压缩算法
    • Content-Language: zh-CN 语言
    • Content-Length: 10 实体正文的长度
    • Content-Type: text/html;charset=GB2312 返回数据的类型
    • Last-Modified 实体报头域用于指示资源的最后修改日期和时间。
    • Expires:Thu,15 Sep 2006 16:23:12 GMT 响应过期的日期和时间。
  • 相关阅读:
    041 Spring Boot中排除功能的处理
    015 图像验证码
    040 Http与RPC
    039 在weblogic下部署jndi的多数据源
    038 lock wait timeout exceeded;try restarting transaction
    037 关于微服务的认识
    036 互联网的框架演变
    035 控制并发 select * from test1 where id =1 for update 就会对这行加锁了?
    034 Maven中的dependencyManagement和dependencies区别
    014 Security的认证流程源码级详解
  • 原文地址:https://www.cnblogs.com/bigman-bugman/p/12491578.html
Copyright © 2020-2023  润新知