概念

  • HTTP协议

    • Hyper Text Transfer Protocol 超文本传输协议
  • 传输协议
    • 传输协议定义了客户端和服务器端通信时,发送数据的格式。
  • 特点
    1. 基于TCP/IP的高级协议
    2. 默认端口号:80
    3. 基于请求/响应模型 :一次请求对应一次响应
    4. 无状态的:每次请求之间相互独立,不能交互数据
  • 历史版本
    • HTTP 1.0:每一次请求响应都会建立新的连接,浪费时间,消耗资源。
    • HTTP 1.1:复用连接。
    • 请求消息数据格式

数据格式

  • 请求消息数据格式
  • 响应消息数据格式

请求消息数据格式

请求方式

  • HTTP协议有7中请求方式,常用的有2种

    • GET
      1. 请求参数在请求行中,在url后。
      2. 请求的url长度有限制的
      3. 不太安全
    • POST
      1. 请求参数在请求体中
      2. 请求的url长度没有限制的
      3. 相对安全

请求行

  • Request method :请求方式
  • Request URI :请求端的URI地址
  • Http version :HTTP协议的版本

GET方式:

POST方式:

请求头

  • Accept:指浏览器或其他客户可以接爱的MIME文件格式。
  • Accept-Encoding:指出浏览器可以接受的编码方式。
  • Accept-Langeuage:指出浏览器可以接受的语言种类,如en或en-us,指英语。
  • connection:用来告诉服务器是否可以维持固定的HTTP连接。
  • Cookie:浏览器用这个属性向服务器发送Cookie。
  • Host:对应网址URL中的Web名称和端口号。
  • User-Agent:客户浏览器名称。
    • 兼容性问题
  • Referer:表明产生请求的网页URL。
    • 防盗链
    • 统计工作
  • Content-Type:用来表名request的内容类型。
  • Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是ISO-8859-1。

GET方式:

POST方式:

请求空行

  • 空行,用于分割请求头和请求体。

请求体

  • 封装POST请求消息的请求参数的

响应消息数据格式

响应行

  • 协议/版本
  • 响应状态码:服务器告诉客户端浏览器本次请求和响应的一个状态。
    • 1xx 指示信息:表示请求已接收,但没有完成,需要继续处理。
    • 2xx 成功:表示请求已被成功接收、理解、接受。
    • 3xx 重定向:要完成请求必须进行更进一步的操作。
      • 302:重定向
      • 304:访问缓存
    • 4xx 客户端错误:请求有语法错误或请求无法实现。
      • 404:请求路径没有对应的资源

        • 405:请求方式没有对应的doXxx方法
    • 5xx 服务器端错误:服务器未能实现合法的请求。

响应头

  • Content-Type:响应体数据格式以及编码格式

    • text/html;charset=UTF-8
  • Content-disposition:打开响应体数据的格式
    • in-line:在当前页面内打开(默认值)
    • attachment;filename=xxx:以附件形式打开响应体。文件下载

响应空行

响应体

  • 传输的数据

————————————————

版权声明:本文为CSDN博主「water1127」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_40981851/article/details/104165403

2、HTTP的消息格式的更多相关文章

  1. Lind.DDD.LindMQ~关于持久化到Redis的消息格式

    回到目录 关于持久化到Redis的消息格式,主要是说在Broker上把消息持久化的过程中,需要存储哪些类型的消息,因为我们的消息是分topic的,而每个topic又有若干个queue组成,而我们的to ...

  2. DNS消息格式

    一,简介 空谈误国,要让一大堆抽象的DNS概念落地,还是需要了解DNS消息格式的,本文会尽量详细地介绍DNS消息格式的每一个字段. 也可以移步rfc1035了解. 二,概览 DNS消息主要由五部分组成 ...

  3. CORBA GIOP消息格式学习

    想要深入理解ORB的工作过程与原理,学习与了解GIOP消息格式必不可少.我们知道GIOP是独立于具体通信的更高级别的抽象,因此这里针对GIOP在TCP/IP上的实现IIOP协议进行学习与分析(IIOP ...

  4. Kafka的消息格式

    Commit Log Kafka储存消息的文件被它叫做log,按照Kafka文档的说法是: Each partition is an ordered, immutable sequence of me ...

  5. 【转】[WCF REST] 帮助页面与自动消息格式(JSON/XML)选择

    可以说WebHttpBinding和WebHttpBehavior是整个Web HTTP编程模型最为核心的两个类型,前者主要解决消息编码问题,而余下的工作基本上落在了终结点行为WebHttpBehav ...

  6. Web Service 消息格式

    当客户端和Web Service服务器进行通信时,他们交换消息.客户端发送请求消息到Web Service服务器. Web Service服务器响应并返回消息.这就像普通的HTTP,浏览器发送一个HT ...

  7. Kafka-Record(消息格式)

    注:本文依赖于kafka-0.10.0.1-src kafka消息格式是经过多个版本的演变的,本文只说0.10.0.1版本的消息格式. 消息格式如图1所示: 图1 CRC:用于校验消息内容.占4个字节 ...

  8. MQTT-SN协议乱翻之消息格式

    前言 紧接着上篇初步介绍,本文为第二篇,主要梳理MQTT-SN 1.2协议中定义的消息格式. 通用消息格式 消息头 其它可变部分 2/4字节表示 N字节组成 消息头部 长度 消息类型 1或3个字节 1 ...

  9. SIP消息类型和消息格式

    转自:http://blog.chinaunix.net/uid-1797566-id-2840904.html sip消息类型和消息格式 SIP是一个基于文本的协议,使用的是UTF-8字符集. SI ...

  10. 一文看懂Kafka消息格式的演变

    摘要 对于一个成熟的消息中间件而言,消息格式不仅关系到功能维度的扩展,还牵涉到性能维度的优化.随着Kafka的迅猛发展,其消息格式也在不断的升级改进,从0.8.x版本开始到现在的1.1.x版本,Kaf ...

随机推荐

  1. centos下安装部署nginx

    1.在安装Nginx之前,要确保已经安装了需要的软件:gcc.pcre-devel.zlib-devel.openssl-devel.如果没有安装,执行下面命令. yum -y install gcc ...

  2. k8s心得

    k8s的 Service 记录了发布后服务的基本信息,如 ip,端口

  3. 从零搭建hadoop集群之CentOS7配置网卡为静态IP

    CentOS7默认网卡设备文件存放于   /etc/sysconfig/network-scripts/  CentOS7的网卡设备名称是  ifcfg-ens33 vim /etc/sysconfi ...

  4. CAD轴测图怎么画?快来试试浩辰CAD超级轴测命令!

    很多新手设计师小伙伴,不知道CAD轴测图怎么画?其实很简单,浩辰CAD中的超级轴测功能,可以方便地将CAD平面图转化为轴侧图,是绘制管线系统图的好帮手.今天就和小编一起来看看在浩辰CAD软件中通过调用 ...

  5. 用dig或nslookup命令查询txt解析记录

    这几天想把HTTPS装上,阿里云的免费证书需要在域名解析的地方添加TXT记录.文档里用的是dig命令,我本地装了nslookup.试验下如何用咯. dig命令 dig用法很多,这里只使用dig txt ...

  6. 看K线学炒股(8.9)

    今天是食品饮料类题材大涨的一天,相应板块涨了6个多点,看着真是诱人.我以前关注的两只股票:海天味业和三全食品,今天都大涨.三全食品接近涨停.这种票容易选出来但也很难拿住.比如前些天买入了,结果8.5的 ...

  7. 记D365开发的最佳实践

    前端JS 不同的需求应该划分模块,以便日后修改,也是为了职责分离,模块分离,日后如果想分离到单独的JS文件里面也是比较方便: 对于公共的查询函数,应该做缓存,优先使用sessionStorage. 多 ...

  8. HttpClient详细使用示例(转)

    https://blog.csdn.net/justry_deng/article/details/81042379

  9. javaProject

    import java.io.*; public class Print{ public static void main(String[] args) throws IOException { // ...

  10. js实现字符串得填充

    方法一: //填充截取法 function padding4(str, length) { //这里用slice和substr均可 return (Array(length).join("0 ...