计算机网络
文章平均质量分 68
zy010101
会写一点代码
展开
-
HTTP/1.1存在的一些问题
随着互联网的发展,http/1.0协议已经不能适应互联网的继续发展。人们在http/1.0的基础上进行了改进,设计了http/1.1协议。但是由于http在最初的时候被设计为一个相对简单直观的协议,但是时间证明了早期的设计是不尽人意的。(个人认为一开始HTTP协议不应该被设计为纯文本协议,虽然文本协议容易调试。这会导致其不够严谨,容易出错。这点在http/2的时候改为了二进制协议。)原创 2022-11-16 22:32:54 · 955 阅读 · 0 评论 -
web机器人
通常我们习惯称“web机器人”为“爬虫”、当然“蜘蛛”、“蠕虫”等有时候也被用来称呼web爬虫。爬虫是能够在无需人类干预的情况下自动进行一系列 Web 事务处理的软件程序。因特网搜索引擎使用爬虫在 Web 上游荡,并把它们碰到的文档全部拉回来。然后对这些文档进行处理,形成一个可搜索的数据库,以便用户查找包含了特定单词的文档。网上有数万亿的 Web 页面需要查找和取回,这些搜索引擎蜘蛛必然是些最复杂的机器人。原创 2022-11-16 20:58:24 · 499 阅读 · 0 评论 -
HTTP中继
HTTP 中继(relay)是没有完全遵循 HTTP 规范的简单 HTTP 代理。中继负责处理HTTP 中建立连接的部分,然后对字节进行盲转发。HTTP 很复杂,所以实现基本的代理功能并对流量进行盲转发,而且不执行任何首部和方法逻辑,有时是很有用的。简单盲中继实现中存在的一个更常见(也更声名狼藉的)问题是,由于它们无法正确处理 Connection 首部,所以有潜在的挂起 keep-alive 连接的可能。这张图中发生的情况如下所述。有一些方法可以使中继稍微智能一些,以消除这些风险,原创 2022-11-09 21:48:37 · 266 阅读 · 0 评论 -
web隧道
web隧道可以让 HTTP 应用程序访问使用非 HTTP 协议的应用程序。Web 隧道允许用户通过 HTTP 连接发送非 HTTP 流量,这样就可以在 HTTP 上捎带其他协议数据了。使用 Web 隧道最常见的原因就是要在 HTTP 连接中嵌入非 HTTP流量,这样,这类流量就可以穿过只允许 Web 流量通过的防火墙了。原创 2022-11-09 21:47:48 · 721 阅读 · 0 评论 -
web网关
HTTP 扩展和接口的发展是由用户需求驱动的。要在 Web 上发布更复杂资源的需求出现时,人们很快就明确了一点:单个应用程序无法处理所有这些能想到的资源。为了解决这个问题,开发者提出了网关(gateway)的概念,网关可以作为某种翻译器使用,它抽象出了一种能够到达资源的方法。。应用程序可以(通过 HTTP 或其他已定义的接口)请求网关来处理某条请求,网关可以提供一条响应。网关可以向数据库发送查询语句,或者生成动态的内容,就像一个门一样:进去一条请求,出来一个响应。原创 2022-11-03 22:01:02 · 519 阅读 · 0 评论 -
Web缓存
Web 缓存是可以自动保存常见文档副本的 HTTP 设备。当 Web 请求抵达缓存时,如果本地有“已缓存的”副本,就可以从本地存储设备而不是原始服务器中提取这个文档。原创 2022-10-27 21:48:10 · 862 阅读 · 0 评论 -
Web代理(HTTP代理)
有了Web代理,客户端就可以与代理进行对话,然后由代理代表客户端与服务器进行交流。客户端仍然会完成对事务的处理,但它是通过代理服务器提供的优质服务来实现的。HTTP 的代理服务器既是 Web 服务器又是 Web 客户端。HTTP 客户端会向代理发送请求报文,代理服务器必须像 Web 服务器一样,正确地处理请求和连接,然后返回响应。同时,代理自身要向服务器发送请求,这样,其行为就必须像正确的 HTTP客户端一样,要发送请求并接收响应。原创 2022-10-12 22:20:03 · 5830 阅读 · 0 评论 -
Web服务器做了什么以及实现一个Web服务器的难度
(1) 建立连接——接受一个客户端连接,或者如果不希望与这个客户端建立连接,就将其关闭。(2) 接收请求——从网络中读取一条 HTTP 请求报文。(3) 处理请求——对请求报文进行解释,并采取行动。(4) 访问资源——访问报文中指定的资源。(5) 构建响应——创建带有正确首部的 HTTP 响应报文。(6) 发送响应——将响应回送给客户端。(7) 记录事务处理过程——将与已完成事务有关的内容记录在一个日志文件中。原创 2022-10-12 22:19:27 · 608 阅读 · 0 评论 -
HTTP连接管理
HTTP协议是应用层协议,HTTP3之前的HTTP协议,都是建立在传输层的TCP协议之上的。本文主要介绍HTTP1.1的连接管理。TCP 为 HTTP 提供了一条。从 TCP 连接一端填入的字节会从另一端以。TCP是传输层协议,在它下面是网络层的IP协议,IP协议是无连接,不可靠协议,并且是分组交换(报文会分成多个数据包)。TLS是在传输层施加的。因此,HTTP和HTTPS的协议栈如下所示:HTTP 要传送一条报文时,会以流的形式将报文数据的内容通过一条打开的 TCP 连接按序传输。原创 2022-10-10 20:57:50 · 1030 阅读 · 0 评论 -
Python解析HTTP请求报文
下面的代码是用来解析HTTP报文中包含的内容的。http_parse函数将http报文初步解析为三个部分,分别是起始行,headers和body。主要利用的是python标准库中的email模块。原创 2022-10-08 13:37:44 · 3131 阅读 · 5 评论 -
http报文详解
http报文是http协议的核心所在,http客户端和http服务端正是通过交换http报文进行通信的。http报文以一些文本形式的元信息(meta-information)开头,这些信息描述了报文的内容及含义,后面跟着可选的数据部分。http报文总是向下游流动的。对于客户端而言,代理和服务器就是它的下游,请求报文会流向代理,然后在流向服务器;对于服务器而言,代理和客户端就是它的下游,报文会流向代理和客户端。原创 2022-09-26 23:17:24 · 5987 阅读 · 0 评论 -
URL语法,编码以及未来的可能性
URL 提供了一种定位因特网上任意资源的手段,但这些资源是可以通过各种不同的方案(比如 HTTP、FTP、SMTP)来访问的,因此 URL 语法会随方案的不同而有所不同。大部分 URL 都遵循通用的 URL 语法,而且不同 URL 方案的风格和语法都有不少重叠。几乎没有哪个 URL 中包含了所有这些组件。URL语法实际上也挺复杂的。下面我们来介绍每个部分。原创 2022-09-22 15:54:41 · 463 阅读 · 0 评论 -
Socket和Websocket
**Socket是端到端的通信。****Websocket客户端到服务器通信**原创 2021-12-08 10:39:27 · 2122 阅读 · 0 评论 -
HTTP长连接和Websocket
HTTP长连接的本质还是HTTP协议,工作模式依旧是一问一答。即:客户端发起一次请求,服务器回应最多一次响应。这个本质并没有得到改变,改变的只是在同一个TCP连接上可以进行多次请求和多次响应。Websocket不一样,客户端可以只请求一次服务器,然后服务器返回多次响应。即:当连接建立之后,服务器可以主动给客户端发送信息,这点是HTTP做不到的。...原创 2021-12-08 10:12:04 · 2382 阅读 · 0 评论 -
websocket
websocketwebsocket是为了解决HTTP协议中的一些问题。因为HTTP是无状态,短连接。HTTP协议下,客户端主动连接服务端;客户端发起一次请求,服务端返回一次响应。也就是说,客户端没有发起请求的时候,服务端是不能主动给客户端返回响应的。websocket解决了这个问题,它将创建一个持久连接,然后客户端和服务器基于这个连接可以进行收发数据。websocket是建立在HTTP协议之上的(这是为了兼容现有浏览器),websocket的连接是由浏览器发起,这个连接是建立在TCP协议之上的。在原创 2021-12-07 10:16:01 · 2461 阅读 · 0 评论 -
计算机网路(网络)基本概念与术语
广域网:WAN(Wide Area Network),一般指覆盖多个远距离的远程网络。局域网:LAN(Local Area Network),一般指一个公司内部,一个校园想对较小的网络。最初的计算机网路是一种私有的,后来慢慢发张成为了现在的样子。万维网:WWW(World Wide Web)是万维网的简称。互联网在发展的过程中已经由初期的“建立连接”到现在的“建立安全的连接”。现在...原创 2019-01-14 13:12:50 · 2978 阅读 · 6 评论 -
OSI参考模型
OSI参考模型将协议分成了7层。在这一模型中,每个分层都接受由它下一个分层所提供的特定服务,并且负责为它上一层提供服务。上下层之间进行交互时所遵循的约定叫做“接口”。同一层之间的交互所遵循的约定叫做“协议”。ISO希望这7层模型是每一层都可以独立使用的。也就是说即使系统的某些分层发生了变化,他并不会影响整个系统。这是比较理想化的,这样这7层组合起来就是一个完整的网络通信。下面给出OSI参考模型...原创 2019-01-14 16:29:44 · 458 阅读 · 0 评论 -
网络传输方式的分类
面向有连接型和面向无连接型面向有连接型,在数据发送之前,需要在收发主机之间连接一条通信线路。必须在通信传输前后,专门进行建立和断开连接的处理。如果对端无法接受数据,那么就可以避免发送无谓的数据。面向无连接型,在数据发送之前不要求建立和断开连接。发送端可以在任何时候自由发送数据。当然,接收端也永远不知道自己会在何时从哪里收到数据。因此,在面向无连接的情况下,接收端需要确认是否收到了数据。电...原创 2019-01-14 18:21:33 · 3515 阅读 · 0 评论 -
TCP/IP协议模型
OSI参考模型虽然是ISO给出的,但是ISO在推进OSI协议标准化的进程上是比较缓慢的。而TCP/IP协议的标准化进程是相当快速的,因此现阶段的实际标准是TCP/IP协议。尽管TCP/IP协议与OSI有所差异,但是仍旧与OSI参考模型有一些对应关系。OSI参考模型与TCP/IP模型 7 应用层 应用层(DNS,URL,HTTP,HTML,STMP,SSH等) ...原创 2019-01-15 15:37:58 · 2377 阅读 · 1 评论 -
入网的几种方式
通过家庭电话线来实现用户入网 这种方式下,使用频分复用技术来实现一根电话线能够支持电话和上网同时进行。 语音电话占据0——4kHz的频段;上行占据4kHZ——50kHz的频段;下行占据50kHz——1MHz的频段。这样当信号到达的家庭的时候,通过一个分频器(低通,带通,高通滤波器组合在一起)就能将数据信号和语音信号分开,数据信号在通过一个调制解调器就能得到数字信号。 通过电缆...原创 2019-01-17 15:37:26 · 1678 阅读 · 0 评论 -
什么是协议?
协议:定义了两个或多个通信实体之间交换报文的格式和次序,以及收发报文或者其他事件上所采取的行动。协议就是指在Internet中实现通信所需要的一些约定。简单来说就是控制收发消息的。常见的协议有TCP,HTTP等。对于计算机网络而言,我们的重点就是在学习一些常用的协议。协议有3个重要的要素: 语法:报文格式 语义:各个字段的含义 同步:报文传输的先后顺序 一...原创 2019-01-18 15:51:24 · 1755 阅读 · 0 评论 -
多路复用技术
多路复用:数据通信系统或计算机网络系统中,传输媒体的带宽或容量往往会大于传输单一信号的需求,为了有效地利用通信线路,希望一个信道同时传输多路信号,这就是所谓的多路复用技术(Multiplexing)。在计算机网络中,对于服务器而言,它的用户是多个,因此多路复用和多路分解是必要的。最早我接触到的多路复用技术是在51单片机中,它的P1口在外接存储器的时候,要多路复用为数据总线和低8位的地址总线...原创 2019-01-18 15:52:30 · 2094 阅读 · 0 评论 -
HTTP协议
HTTP协议:hypertext transfer protocol译为超文本传输协议,简称HTTP协议。HTTP协议是web应用层协议。他在传输层使用的是TCP协议。HTTP协议有两个版本,分别是HTTP1.0(非持久HTTP连接)和HTTP1.1(持久HTTP连接)。其中HTTP1.1可以在一个TCP连接上发送多个命令和应答。HTTP1.0在HTTP1.0中使用的是非持久连接,每个...原创 2019-01-19 15:25:06 · 4073 阅读 · 1 评论 -
HTTP报文格式及WireShark抓包分析
HTTP请求报文格式在这个请求格式之中空行是必不可少的一行。空行之后是请求实体。一个具体的HTTP请求报文格式如下:GET /su?wd=www.&action=opensearch&ie=UTF-8 HTTP/1.1Host: suggestion.baidu.comConnection: keep-aliveUser-Agent: Mozilla/5....原创 2019-01-19 16:40:22 · 8127 阅读 · 1 评论 -
Cookies与web缓存
Cookiecookie是为了使web站点能更好的的与用户交互而出现的一种技术。通常一个站点都希望能标识用户。HTTP中的cookie正好能够满足要求,他能跟踪用户。cookie有4个组成部件在HTTP请求报文中有个cookie首部行 在HTTP响应报文中有个cookie首部行 cookie是保存在用户客户端的一个文件,并由用户的浏览器进行管理。 cookie信息被保存在web站点的...原创 2019-01-20 11:55:56 · 587 阅读 · 0 评论 -
文件传输协议——FTP
FTP是在两个计算机之间传输文件的协议。一般有两种情形,一种是需要登录的FTP文件服务器,另外一种FTP服务器是匿名的,它允许任何人进行访问。FTP的工作机制FTP使用两条TCP连接:一条用来控制,另一条用来数据传输。用于控制的TCP连接主要在FTP的控制部分使用。例如:登录用户名和密码的验证,发送文件的名称等。这个连接可以通过ASCII来发送请求和接受应答。(也就是通过命令的方式)该...原创 2019-01-20 14:53:15 · 416 阅读 · 0 评论 -
电子邮件相关协议——SMTP,MIME,POP,IMAP
在互联网发展的早期,电子邮件的发送是基于两个主机之间直接连接的TCP。但是这必须是双方都在线的情况下才能行的通。如果接收方不在线,那么发送方会等待一段时间后尝试重发邮件。这种传输机制的可靠性是非常高的,但是其有效性却非常低下。后来出现了电子邮件服务器,发送方和接收方就不必同时在线。发送方发出的电子邮件在邮件服务器中,邮件服务器会根据邮件DNS的MX来查询接收方的邮件服务器IP地址,然后将邮件转发到...原创 2019-01-20 20:37:36 · 8541 阅读 · 1 评论 -
DNS
我们平常在上网的时候,访问一个网站的方式几乎都是在浏览器的地址栏输入该网站的域名。几乎从不使用一个网站的IP地址去访问它。但是我们都知道,实际上,我们最终仍旧是通过IP地址去访问了网站。如何将域名与IP地址进行转换,这就是DNS的工作。DNS(Domain Name System)译为“域名系统”。它可以将一个域名转换为其对应的IP地址。DNS是一个分层结构,实际上是一个分布式数据库。DNS的...原创 2019-01-21 14:00:43 · 474 阅读 · 0 评论 -
TCP简介
TCP是Transmission Control Protocol的缩写。他是一种面向有连接,可靠的传输层协议。TCP是全双工的通信方式。TCP将应用层传递给它的数据包会进行分组,形成一个个小的数据包。与UDP不同,TCP是“名副其实”的,它确实是对通信进行有力的控制的协议。可以在丢包时进行重发,可以对次序混乱的包排序。当然,它的面向连接的特性,还可以让它在确定对端确实存在的情况下才发送数...原创 2019-01-26 17:14:19 · 512 阅读 · 0 评论 -
数据链路相关技术
MAC地址是用来识别数据链路中相互连接的节点。大多数设备都是根据IEEE802.3规范使用MAC地址。MAC地址长48位,也就是6字节。他的结构如下所示:第1位:单播地址(0),多播地址(1)第2位:全局地址(0),本地地址(1)第3-24位:有IEEE管理的厂商识别码,每个厂商都有自己唯一的识别码。第25-48位:厂商管理的产品识别码,每个网卡都有自己唯一的识别码。I...原创 2019-01-28 14:40:32 · 341 阅读 · 0 评论 -
IP协议基础知识
TCP/IP协议的主要部分IP层,它相当于OSI参考模型的第三层——网络层。网络层的主要作用是“实现端对端的通信”。在网络世界里,所有的主机都具有“IP地址”。(同时具有IP地址和路由控制能力的设备是“路由器”,而非主机)IP位于数据链路层之上,因此无论是以太网,WLAN,还是PPP,都不会改变IP地址的形式。IP数据包的传输是偶然的,无计划的。一台主机将一个IP包发送到一个一台附近的...原创 2019-02-10 16:49:01 · 2696 阅读 · 3 评论 -
IPv4协议
在使用TCP/IP通信的时候,IP地址是一块基石。IP地址(IPv4)这里所说的IP地址是IPv4地址,IP地址由32位正整数来表示。他在计算机内部被以二进制方式处理,因此最多有2^32个IP地址,即:43亿个总IPv4地址。32位的IP地址被分为4组,每组8位。每组以“.”来进行分割。然后在将每组数转换为相应的十进制数字。例如:192.168.0.231,我们称之为点分十进制形式。将每组...原创 2019-02-12 18:28:14 · 696 阅读 · 0 评论 -
路由控制
数据包在网络传输的过程中,仅知道目标IP地址是不够的,还需要知道发送过程中转发数据包的中继路由器的地址。相当于你坐飞机到机场,然后打车到汽车站,接着乘坐大巴到目标城市。实现通信的主机和路由器也必须记录这些中继信息,称之为路由控制表。IP协议虽然始终认为该表是正确的,但是该表的制定是由路由协议来完成的。路由控制表中记录着网路地址与下一步应该发送的路由器的地址。在发送IP包的时候,首先要确定IP包...原创 2019-02-13 14:45:35 · 726 阅读 · 0 评论 -
计算机网络中的硬件设备
计算机网络中最重要的应该是各种各样的协议,但是各种硬件设备也是计算机网络中必不可少的部分。首先,两台计算机想要通信,那么物理上来看,就必须要使用电缆来进行连接。电缆的种类是非常多的。常见的电缆有双绞线,同轴电缆,光纤电缆等。其次,一台计算机能够连接到网络都是需要一个网卡(NIC)的,有时候也被叫做网络适配器,网络接口卡,LAN卡。现在的大多数计算机在出场的时候都配备了网卡。网卡:集成了...原创 2019-02-17 16:36:45 · 2006 阅读 · 0 评论 -
以太网
目前,在数据链路中使用最广泛的就是以太网。以太网已经从最开始的10Mbps的速度发展到了今天的100Gbps的速度。以太网最早由美国的Xerox公司设计。命名为:Ethernet(以太:以太是古希腊哲学家亚里士多德所设想的一种物质,亚里士多德认为以太存在于天空上层;后来,19世纪的物理学家们,认为它是电磁波的传播媒质。)之后,IEEE802.3将以太网进行了标准化。以太网因不同的通信介质,所以...原创 2019-02-19 13:48:14 · 1515 阅读 · 0 评论 -
IPv6
IPv6的简介IPv6的出现是为了从根本上解决IPv4地址耗尽的问题(IPv4地址早在2011年就正式耗尽了)。IPv4版本的IP地址只有4字节大小,即32位长度的IP地址。IPv6版本的IP地址有16字节大小,即128位的长度。从IPv4迁移到IPv6是一项非常困难的工作。因为,这需要所有的主机和路由器的IP地址都进行重新设置。当然,IPv6的出现还想解决IPv4版本所存在的大多数缺陷。...原创 2019-02-24 15:09:23 · 534 阅读 · 0 评论 -
ARP
ARP简介ARP(Address Resolution Protocol):ARP是一种解决地址问题的协议(数据链路层的MAC地址)。在网络层使用的通信地址是IP地址,而在数据链路层使用的通信地址是MAC地址。ARP技术能够通过目的IP地址为线索,定位用于数据链路层通信所使用的MAC地址。但是ARP只适用于IPv4,在IPv6中使用的是ICMPv6来代替ARP。ARP工作机制ARP...原创 2019-02-24 17:29:57 · 631 阅读 · 0 评论 -
P2P架构
现在的网络体系中,除了C/S架构以外,P2P是近几年比较流行的一种web应用架构。P2P没有绝对的服务器和客户端之分。连接的双方分别作为临时的服务器和客户端。P2P通信的双方还可能更换IP地址。 P2P的一个最为流行的应用是BT种子,相信各位老司机对BT种子和迅雷都不陌生吧!这是一个文件分发协议。P2P的出现使得服务器在处理文件传输的时候,能够减少服务器的负载。在P2P中,每个对等方能够向任何其他...原创 2019-03-18 15:09:54 · 1466 阅读 · 1 评论 -
UDP套接字编程——Python语言描述
首先,回顾一下。在我们使用Socket编程之前的一些网络的概念。IP:它是用来标识处于Internet之中的端系统的。MAC:它是用于在同一局域网中标识不同的计算机的。端口号:它是用来标识同一台主机上不同的网路应用程序的。套接字成为了应用程序进行通信的一种抽象机制。每一个进程都有一个或者多个套接字。当生成一个套接字的时候,就会为它分配一个端口号。我们是在C/S架构上应用UDP套接字...原创 2019-03-18 20:32:51 · 1106 阅读 · 2 评论 -
TCP套接字编程——Python语言描述
TCP和UDP不同,它是面向连接的服务。因此,在传输数据之前,必须要先建立连接。当连接一旦建立,那么客户端就可以直接通过该套接字向服务器发送数据。而无需向UDP连接中那样需要指定目的地址。下面我们来看客户端代码。from socket import *;server_address = 'localhost';server_port = 8000;ADDR = (server_add...原创 2019-03-18 22:02:14 · 516 阅读 · 4 评论