首页 > 其他分享 >1. http协议

1. http协议

时间:2023-02-15 23:12:44浏览次数:39  
标签:协议 HTTP 请求 tcp TCP http 客户端

http协议
  • http协议(超文本传输协议)

    • http协议是基于Tcp/ip协议之上的应用层协议,不关心数据传输的细节,用来规范客户端和服务器端的数据传输格式(客户端和服务器端请求和响应的标准)

    • 关于tcp

      • tcp提供一种面向连接,可靠的字节流服务
      • 在一个tcp连接中,仅有两方彼此进行通信,广播和多播不能用于tcp
      • tcp 使用校验和,确认和重传机制来保证可靠传输
      • tcp 给数据分解进行排序,并使用累积确认保证数据的顺序不变和非重复
      • tcp使用滑动窗口机制来实现流量控制,通过动态改变窗口的大小来进行拥塞控制
    • 三次握手和四次挥手

      • 三次握手
        img
      • 四次挥手
        img
    • 组成

      • http报文
        1. 请求报文
          img
          简单来说(开始行,请求头,请求实体)
        2. 响应报文
          img
          简单来说(状态行,响应头,响应实体)
    • 工作原理

      • http协议是基于请求-响应模型
      • 请求和响应步骤
        1. 客户端连接到Web服务器
          • 一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.luffycity.com
        2. 发送http请求
          • 通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。
        3. 服务器接受请求并返回http响应
          • Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成
        4. 释放连接Tcp连接
        5. 客户端浏览器解析html内容
      • 例如:在浏览器地址栏输入url,按下回车会经历以下流程
        img
  • https协议

    • 组成
      • https是由两部分组成:http+ ssl/tls(一层加密信息模块)
    • 工作原理
      1. 首先http请求服务端生成证书,客户端对证书的有效性,合法性,证书的公钥(rsa加密)等进行校验
      2. 客户端如果校验通过后,就会根据证书的公钥的有效,生成随机数,随机数使用公钥进行加密(rsa加密)
      3. 消息体产生后,对它的摘要进行md5(或sha1)加密此时就得到了rsa签名
      4. 发送给服务端,此时只有服务端(rsa私钥)能解密
      5. 解密得到的随机数,在用aes加密,作为密钥
        img
  • 跨域

    • 同源策略
  • 长连接和短连接

  • http优化

    • TCP复用:TCP连接复用是将多个客户端的HTTP请求复用到一个服务器端TCP连接上,而HTTP复用则是一个客户端的多个HTTP请求通过一个TCP连接进行处理。前者是负载均衡设备的独特功能;而后者是HTTP 1.1协议所支持的新功能,目前被大多数浏览器所支持
    • 内容缓存:将经常用到的内容进行缓存起来,客户端就可以直接在内存中获取相应的数据
    • 压缩:将文本数据进行压缩,减少带宽
    • ssl加速:使用SSL协议对HTTP协议进行加密,在通道内加密并加速
    • tcp缓冲:通过采取tcp缓冲技术,提高服务器响应速度
  • 链接:

标签:协议,HTTP,请求,tcp,TCP,http,客户端
From: https://www.cnblogs.com/blackamon/p/17125111.html

相关文章

  • HTTP概述--B/S架构
    B/S架构什么是B/S架构?B/S架构:Browser/Server,浏览器/服务器架构模式,它的特点是,客户端只需要浏览器,应用程序的逻辑和数据都存储在服务器端。浏览器只需要请求服务器,获......
  • 学习TCP/IP(4):网际协议 IPv4-转发IP数据报
    学习TCP/IP(4):网际协议IPv4-转发IP数据报引言在网络的世界里,数据报转发可以分为两种类型:直接交付和间接交付。直接交付直接交付是指把数据报从一台机器通过物理网络......
  • 学习TCPIP(2)-ARP协议
    学习TCPIP(2)-ARP协议ARP协议是这样一个协议:它负责将高层地址(IP地址)映射为底层物理地址(MAC地址)其中,IP地址是针对于TCPIP网络而言的,当目的地是网络A的主机H一个数据包抵......
  • 一次完整的HTTP请求过程
    HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:1、建立TCP连接在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立......
  • 真正“搞”懂HTTPS协议17之TLS握手
    经过前两章的学习,我们知道了通信安全的定义以及TLS对其的实现~有了这些知识作为基础,我们现在可以正式的开始研究HTTPS和TLS协议了。嗯……现在才真正开始。我记得......
  • 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    .net6之后,不会随项目生成packages文件夹,将项目拷贝到无联网的电脑上用VS打开时,会出现nuget还原失败的情况,只需要把原电脑中的用户文件夹下的.nuget文件夹拷贝过去,放到对应......
  • 【git】解决git clone时fatal: unable to access ‘https://gitee.com/XXX.git/‘: Th
    一、前言我的电脑一直录入的是我的gitee账号,平常和同事协作开发,gitpull、gitclone等git操作都没有报错过。但是,今天要gitclone另一个gitee账号的项目代码,出现报错403(如......
  • HttpServlet源码分析
    HttpServlet源码分析概念HttpServlet类是专门为Http协议准备的在哪个包下:jakarta.servlet.http.HttpServlet到目前为止我们接触了servlet规范中的哪些接口?jakart......
  • tcp与http的区别和关系
    一、区别TCP协议是传输层协议,主要解决数据如何在网络中传输。HTTP是应用层协议,主要解决如何包装数据。TCP/IP和HTTP协议的关系,从本质上来说,二者没有可比性,我们在传输数......
  • Spring6之HTTP Interface分析
    目录1HTTPInterface1.1引言1.2示例1.2.1创建服务端1.2.2SpringBoot工程1.3深入分析1.3.1GetExchange(HttpExchange)1.3.2UserApiService实例创建1.4其他特性1HT......