zoukankan      html  css  js  c++  java
  • http学习笔记1:什么是http报文,http报文结构是什么?

    说到Http报文,其实Http报文可以分为两种分别是请求报文响应报文他们的结构都基本相同:

    1. 起始行(start line):用来描述请求或相应的基本信息
    2. 头部信息(header):使用kv结构更详细的说明报文
    3. 消息正文(entity):实际传输的数据

    其中的起始行和头部信息经常合称为请求头或者响应头,消息正文成为实体也就是body。Http协议规定报文中必须有header,但是可以没有body。header和body中间使用一个空行分隔。

    请求行

    请求报文

    请求报文中的请求行分为三部分:

    1. 请求方式:GET POST等
    2. 请求目标的URI / /abc.html 等
    3. 版本号:表示报文中使用的http协议版本

    举一个完整的请求报文样式:

    get /abc.html http/1.1
    

    响应报文

    响应报文中的起始行称为状态行,意思是服务器的响应状态。状态行也分为三部分:

    1. 版本号:表示报文用的http协议版本号
    2. 状态码:一个三位数字,以代码的形式来说明服务器的响应结果。如 200 404 502等等
    3. 原因:作为状态码的补充说明,增加可读性。

    举个响应报文中的状态行的例子:

    http/1.1 404 Not Found
    

    头部信息

    起始行+头部字段集合就构成了http报文中完成的请求头或响应头,他们俩唯一的区别就是起始行不一致。具体不一致的内容可以参见第一部分。

    头部字段为key: value格式,kv之前使用:分割。头部字段有五个特点:

    1. 字段名不区分大小写,但是为了方便查看建议还是首字母大写
    2. 字段名中不允许出现空格和下划线,如果希望将两个单词连接起来,可以使用-链接,如:Content-Length
    3. 字段名之后需要紧接:,如果中间出现空格就会报错
    4. 字段的顺序没有意义
    5. 原则上字段名不能重复,除非有特殊予以的字段,比如Set-Cookie

    头字段通常分为四种:

    1. 通用字段:在请求头和响应头中都可以出现,如Date
    2. 请求字段,仅仅能出现在请求头中,如Host、User-Agent
    3. 相应字段:仅仅能出现在响应头中,如Server
    4. 实体字段,属于通用字段,但是实体字段是专们用来描述body的额外信息的,如Content-Length
  • 相关阅读:
    程序如何调取焦点轮换图的每一张图片
    做一个网站程序的小小感悟
    点击repeater的一个修改事件触发全部repeater每一行的修改事件
    将两个时间组合,结果为2015年4月8日-4月10日
    转 c# 日期函数[string.Format----GetDateTimeFormats]格式 .
    关于后台管理linkbutton按钮几个重要属性的理解
    循环repeater中的每一列,并计算数据和
    上传图片2
    isinstance和issubclass
    类和对象的绑定方法和非绑定方法
  • 原文地址:https://www.cnblogs.com/joimages/p/13329924.html
Copyright © 2011-2022 走看看