iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >计算机网络之十二:HTTP协议
  • 585
分享到

计算机网络之十二:HTTP协议

2023-06-04 18:06:43 585人浏览 薄情痞子
摘要

一:HTTP简介Http是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide WEB Consortium)和Internet工作小组IETF(Internet En

一:HTTP简介

Http是Hyper Text Transfer Protocol(超文本传输协议)的缩写。

它的发展是万维网协会(World Wide WEB Consortium)和Internet工作小组

IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本。

其中最著名的就是RFC 2616。RFC 2616定义了今天普遍使用的一个版本——HTTP 1.1。

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。

它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,

以及哪部分内容首先显示(如文本先于图形)等。

HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。

http://cimc-express.com/ 是哥URL,叫统一资源定位符。 HTTP称为协议,cimc-express.com是一个域名,表示互联网

的一个位置。浏览器会将cimc-express.com解析为IP地址,HTTP是基于tcp协议的,要先建立TCP连接。

目前使用的HTTP协议大部分是1.1. 在1.1协议里面,默认开启了Keep-Alive,这样建立的TCP连接,可以在多次请求中复用。

计算机网络之十二:HTTP协议

二:HTTP发送报文

HTTP报文大概分为三大部分。第一部分是请求行,第二部分是请求的首部,第三部分是请求的正文实体。

计算机网络之十二:HTTP协议

请求行

URL就是http://cimc-express.com,版本是HTTP1.1,HTTP中的方法类型有:

GET:去服务器端获取资源,对于访问网页来讲,获取的是一个页面;对于一个基于HTTP协议的api,返回的可能是一个

JSON字符串

POST:向服务器端提交资源

PUT:向服务器端提交资源,POST往往是用来创建一个资源,PUT往往是用来修改一个资源

DELETE:删除资源

首部

首部是key:value形式,保存一些非常重要的字段。Accept-Charset表示客户端可以接受的字符集,Content-Type指正文的

格式,Cache-Control是用来控制缓存的。

正文实体

三:HTTP数据发送

HTTP协议是基于TCP协议的,它使用面向连接的方式发送请求,通过stream二进制流的方式传给对方。到了TCP层,会把

二进制流变成一个报文段发送给服务器。

在发送每个报文段的时候,都需要对方有一个回应ACK,来保证报文可靠到达了对方。如果没有回应,那么TCP这一层会

进行重新传输,直到可以到达。同一个包有可能被传了多次,但是HTTP这一层不知道这一点。

TCP层发送每一个报文的时候,都需要加上自己的地址(源地址)和它想要去的地址(目标地址),将这两个信息放到IP头

里面,交给IP层进行传输。

IP层需要查看目标地址和自己是否在同一个局域网。如果是,就发送ARP协议来请求这个目标地址对应的Mac地址,然后将

源MAC地址和目标MAC地址放入MAC头,发送出去即可;如果否,就需要发送到网关,还需要发送ARP协议,来获取网关的

MAC地址,然后将源MAC地址和网关MAC放入MAC头,发送出去。

网关收到包发现MAC符合,取出目标IP地址,根据路由协议找到下一跳的路由器,获取下一条路由器的MAC地址,将包发

给吓一跳路由。

目标的机器发现MAC地址符合,就将包收起来;发现IP地址符合,根据IP头重协议项,知道自己上一层是TCP协议,于是解

析TCP的头,里面有序列号,需要看看这个序列号是不是我要的,如果是就放入缓存中然后返回一个ACK,如果不是就丢弃

TCP头里面还有端口号,HTTP的服务器正在监听这个端口号。于是,目标机器自然知道是HTTP服务器这个进程想要这个包,

于是将包发给HTTP服务器。HTTP服务器的进程看到,原来这个请求是要访问一个网页,于是就把这个网页发送给客户端。

四:HTTP返回报文

计算机网络之十二:HTTP协议

状态码

200:交易成功,400:错误请求  404:没有发现文件、查询或URl  500:内部服务器错误 502:网关错误

返回首部key:value.  Retry-After表示客户端应该在多长时间以后再次尝试一下,Content-Type表示返回的是html,还是

jsON。

构造好了返回的HTTP报文,接下来就是把这个报文发送出去。是交给Socket去发送,还是交给TCP层,让TCP层将返回的

HTML,也分成一个个小的段,并且保证每个段都可靠到达。

五:HTTP2.0

HTTP1.1在应用层以纯文本的形式进行通信,每次通信都要带完整的HTTP的头,而且不考虑pipeline模式的话,每次的过程

总是一去一回。这样在实时性和并发性上都存在问题。

HTTP2.0会对HTTP头进行一定的压缩,将原来每次都要携带的大量key:value在两端建立一个索引表,对相同的头只发送

索引表中的索引。

HTTP2.0协议将一个TCP的连接中,切分成多个流,每个流都有自己的ID,而且流可以是客户端发往服务端,也可以是服务

端发往客户端,它其实只是一个虚拟的通道,流是有优先级的

HTTP2.0还将所有的传输信息分割为更小的消息和帧,并对它们采用二级制格式编码。常见的帧有Header帧,用于传输

Header内容,并且会开启一个新的流。再就是Data帧,用来传输正文实体,多个Data属于同一个流。

通过这两种机制,HTTP2.0的客户端可以将多个请求分到不同的流中,然后将请求内容拆成帧,进行二进制传输。这些帧可

以打散乱序发送,然后根据每个帧首部的流标识符重新组装,并且可以根据优先级,决定优先处理哪个流的数据。

举例:一个页面要发送三个独立的请求,一个获取CSS,一个获取js,一个获取图片jpg. 如果使用HTTP 1.1 就是串行的;但是如果

使用HTTP 2.0,就可以在一个连接里,客户端和服务端都可以同时发送多个请求或回应,而且不用按照顺序一对一对应。

计算机网络之十二:HTTP协议

HTTP2.0成功解决了HTTP1.1的队首阻塞问题,同时,也不需要通过HTTP 1.X的pipeline机制用多条TCP连接来实现并行请求

与响应;减少了TCP连接数对服务器性能的影响,同时将页面的多个数据css,js,jpg等通过一个数据连接进行传输,能够加快页

面组件的传输速度。

六:QUIC

HTTP 2.0虽然大大增加了并发性,但还是有问题的。因为HTTP 2.0也是基于TCP协议的,TCP协议在处理包时是有严格顺序的

Google的QUIC协议基于UDP实现,包含自定义连接机制,

自定义重传机制,无阻塞多路复用和自定义流量控制。

--结束END--

本文标题: 计算机网络之十二:HTTP协议

本文链接: https://www.lsjlt.com/news/238972.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 计算机网络之十二:HTTP协议
    一:HTTP简介HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet En...
    99+
    2023-06-04
  • 计算机网络之十三:HTTPS协议
    一:对称加密在对称加密算法中,加密和解密使用的密钥是相同的。二:非对称加密在非对称加密算法中,加密使用的密钥和解密使用的密钥是不相同的。一是作为公开的公钥,一是作为谁都不能给的私钥。三:数字证书1.数字证书简介数字证书是互联网通信中标志通信...
    99+
    2023-06-04
  • 《计算机网络—自顶向下方法》 Wireshark实验(二):HTTP协议分析
            HTTP 协议工作于客户端-服务端架构上。浏览器作为 HTTP 客户端通过 URL 向 HTTP 服务端即 WEB 服务器发送所有请求。 WEB 服务器有:Apache服务器,IIS服...
    99+
    2023-10-23
    服务器 网络 http HTTP协议缓存 HHTP认证
  • 详解计算机网络TCP/IP协议
    这篇文章主要介绍“详解计算机网络TCP/IP协议”,在日常操作中,相信很多人在详解计算机网络TCP/IP协议问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”详解计算机网络TCP...
    99+
    2024-04-02
  • 一文看懂计算机网络五层协议+各层网络协议大全
    目录 一、通用五层协议体系 5. 应用层 4. 运输层 3. 网络层 2. 数据链路层 1. 物理层 二、各层之间的传递过程 三、TCP/IP体系结构 四、网络协议大全(各种属于哪一层) 五、举例:RTSP 一、通用五层协议体系 5....
    99+
    2023-09-03
    计算机网络 网络 服务器
  • 【计算机网络】传输层协议——TCP(中)
    文章目录 1. 三次握手三次握手的本质是建立链接,什么是链接?整体过程三次握手过程中报文丢失问题为什么2次握手不可以?为什么要三次握手? 2. 四次挥手整体过程为什么要等待2MSL 3...
    99+
    2023-09-20
    计算机网络 tcp/ip 网络
  • 【计算机网络】传输层协议——TCP(下)
    文章目录 1. 拥塞控制慢启动滑动窗口最终大小为什么采用指数增加的方案,来设计对应的拥塞窗口的增加速度? 2. 延迟应答3. 粘包问题4. TCP异常情况(面试题)进程终止机器重启网线断开...
    99+
    2023-09-20
    计算机网络 tcp/ip
  • 第二十七天- 网络通信协议 TCP UD
        1.网络通信协议   osi七层模型:按照分工不同把互联网协议从逻辑上划分了层级       socket层   2.理解socket:   Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计...
    99+
    2023-01-30
    通信协议 十七天 网络
  • 【网络】HTTP协议详解
    😀大家好,我是白晨,一个不是很能熬夜😫,但是也想日更的人✈。如果喜欢这篇文章,点个赞👍,关注一下👀白晨吧!你的支持就是我最大的动力!💪💪...
    99+
    2023-08-23
    网络 http 网络协议 服务器 c++
  • Python网络编程之HTTP协议的python应用
    目录搭建python自带静态web服务器1. 静态Web服务器是什么?2. 如何搭建Python自带的静态Web服务器3. 访问搭建的静态Web服务器4. 查看浏览器和搭建的静态We...
    99+
    2022-11-13
    python http协议 http协议python应用 python网络编程 python使用http协议
  • 计算机网络编程MQTT协议基础原理详解
    目录什么是 MQTT 协议MQTT 基础发布 - 订阅模式可拓展性消息过滤基于主题的过滤基于内容的过滤基于类型的过滤MQTT 与消息队列的区别MQTT 重要概念MQTT client...
    99+
    2024-04-02
  • 网络协议分析-http/https/tcp/udp
    文章目录 TCP三次握手/TCP三次挥手TCP三次握手TCP四次挥手完整报文 实例代码HttpSampleClientHttpSampleServerHttpsSampleClientHttpsSampleServerTcpSa...
    99+
    2023-08-30
    网络协议 http https tcp upd
  • http和https网络协议是什么
    这篇文章主要介绍http和https网络协议是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!http和https网络协议究竟是什么?在选择代理ip之前,我们需要弄清楚它们的意义吗?是因特网上使用最广泛的一种网络协...
    99+
    2023-06-15
  • 学习网络编程No.8【应用层协议之HTTP】
    引言: 北京时间:2023/10/9/13:03,一晃好多天过去了,9月14号的文章终于在昨天发出去了,也是许久没有更文了,国庆放假期间由于各种原因,在王者峡谷和铲子世界遨游的不亦乐乎,有待改善!目前...
    99+
    2023-10-26
    1024程序员节 网络 http
  • 计算机网络中路由选择协议位于哪一层
    这篇文章将为大家详细讲解有关计算机网络中路由选择协议位于哪一层,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。路由选择协议位于网络层。当一个计算机发送一个分组时,在网络上网络协议栈的每一层都附加一些信息给它...
    99+
    2023-06-20
  • 计算机网络之一:网络架构
    一:七层架构OSI是Open System Interconnect即开放系统互连模型。二:五层架构三:四层架构TCP/IP四层模型四层协议和对应的标准七层协议的关系如下图:四:数据包五:程序是如何工作的...
    99+
    2023-06-03
  • 计算机网络中常用的应用层协议包括哪些
    这篇文章主要为大家展示了“计算机网络中常用的应用层协议包括哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“计算机网络中常用的应用层协议包括哪些”这篇文章吧。网络协议指的是计算机网络中互相通信的...
    99+
    2023-06-15
  • Golang中基于HTTP协议的网络服务
    目录一、HTTP协议的网络服务1.1 使用http.Get函数访问HTTP协议的网络服务1.2 使用缺省客户端DefaultClient(类型为*http.Client )...
    99+
    2023-05-15
    Golang基于HTTP协议的网络服务 Golang基于HTTP协议 Golang网络服务
  • 探究HTTP协议下的NumPy计算优势
    HTTP协议是现代网络通信的基础,它使得客户端与服务器之间的通信变得高效、稳定和安全。在HTTP协议下,NumPy是一种非常重要的计算库,它为数据科学家和工程师提供了一种高效的计算方式。本文将,并演示如何使用NumPy在HTTP协议下进行高...
    99+
    2023-11-09
    http numpy unix
  • Android中怎么通过 Http协议访问网络
    Android中怎么通过 Http协议访问网络,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。HTTPCONNECTION由于网络连接是耗时操作不能在UI线程操作,一般通过Han...
    99+
    2023-05-30
    android http
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作