• HTTP 协议基础概念和报文结构


    基础概念

    1、WWW(World Wide Web,万维网)构建技术有3项:

    (1)把SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文本标记语言,即HTML(HyperText Markup Language,超文本标记语言)。

    (2)作为文档传输协议的HTTP(HyperText Transfer Protocol,超文本传输协议)。

    (3)指定文档所在地址的URL(Uniform Resource Locator,统一资源定位符)。

    2、1997年1月公布的HTTP/1.1是目前主流的HTTP协议版本,当初的标准是RFC2608,之后发布的修订版RFC2616就是当前的最新版本。(RFC(Request for Comments,征求修正意见书))

    3、通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运行的,而HTTP属于它内部的一个子集。

    4、URI(Uniform Resource Identifier)统一资源标识符。URL(Uniform Resource Locator)统一资源定位符

    URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置),URL是URI的子集。

    5、表示指定的URI,需要使用涵盖全部必要信息的绝对URI、绝对URL、相对URL

     

    6、HTTP是一种不保存状态的协议,即无状态协议,HTTP协议自身不对请求和响应之间的通信状态进行保存,也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。为了实现期望的保存状态的功能,引入了Cookie的技术,有了Cookie再用HTTP协议通信,就可以管理状态了。

    7、持久连接

    HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接。如果一个页面包含多项内容的话,需要好多次请求,每次的请求都会造成无谓的TCP连接建立和断开,增加通信量的开销。

    为了解决上述TCP连接的问题,HTTP/1.1和一部分HTTP/1.0想出了持久连接(HTTP Persistent Connections,也称为 HTTP keep-alive 或 HTTP connection reuse)的方法。

    持久连接的特点是只要任意一端没有明确提出断开连接,则保持TCP连接状态。在HTTP/1.1中,所有的连接默认都是持久连接,但在HTTP/1.0中并未标准化。

    8、管线化

    持久连接使得多数请求以管线化(pipelining)方式发送成为可能。以前发送请求后需要等待并收到响应才能发送下一个请求,管线化技术出现后,不用等待响应也可直接发送下一个请求。

    报文结构

    请求报文的结构

     

    响应报文的结构

  • 相关阅读:
    python 【第一篇】初识python
    python 【目录】
    python 爬虫必知必会
    MySQL测试代码
    MySQL学习笔记
    pycharm社区版无database 解决方法
    windows python flask上传文件出现IOError: [Errno 13] Permission denied: 'E:\git\test\static\uploads'的解决方法
    ubuntu下python flask环境搭建
    windows下的python flask环境搭建
    Mockito (十四)
  • 原文地址:https://www.cnblogs.com/wbxk/p/6802713.html
Copyright © 2020-2023  润新知