当前位置:首页 » 网络连接 » 计算机网络基础http
扩展阅读
电脑网络共享搜索不到 2025-03-13 07:11:35
苹果平板电脑图像闪烁 2025-03-13 06:40:04
小米9530无线网络信号差 2025-03-13 06:20:34

计算机网络基础http

发布时间: 2025-03-13 02:33:08

‘壹’ 计算机网络——应用层-Web&HTTP

计算机网络系列博文——目录

20世纪90年代初
因特网应用

Web应用的组成

由对象组成。对象是一个文件,如HTML文件,JPEG图像,Java程序,视频片段等。
对象可通过一个URL地址寻址。
Web页面常由一个HTML基本文件和多个引用对象构成。

URL(Uniform Resoure Locator):统一资源定位器 RFC1738

用以寻址Web对象
由一个存放对象的服务器主机名和对象路径名构成。

HTTP 由客户端程序和服务端程序实现,二者通过交换HTTP报文会话。
HTTP规范定义了HTTP客户端和服务端之间的通信协议。

Web浏览器实现HTTP客户端,请求、接收、展示Web对象
Web服务器实现HTTP服务端,响应客户的请求,发送对象

HTTP使用TCP作为支撑运输层协议。

端口:80

无状态协议 服务器不保存关于客户的任何信息
服务器向客户发送被请求的文件,而不存储任何关于客户的状态信息。

往返时间(Round-Trip Time,RTT)
一个短分组从客户到服务器然后再返回客户所花费的时间。

某客户和服务器的一次会话中,每个请求/响应对通过一个单独的TCP连接传输

HTTP 1.0版本使用非持续性连接

对多个待获得的web对象,客户端一次只请求一个对象,待前一个对象接收完毕后再发送对下一个对象的请求。

时间分析

浏览器通常支持并行的TCP连接。并行TCP连接数通常为5~10个。
对多个待获得的web对象,客户端一次可同时建立多个TCP连接,以同时请求多个web对象。
时间分析

某客户和服务器的一次会话中,所有请求/响应对经同一TCP连接传输

HTTP 1.1版本在默认方式下采用持续连接,但也可由客户端/服务器配置为非持续连接。

客户端只有收到前一个响应后才发送新的请求
可理解为同个TCP内的串行

时间分析

客户端只要遇到一个引用对象就尽快发出请求
可理解为同个TCP内的并行
HTTP 1.1的默认选项

时间分析

TCP 三次握手
1.客户向服务器发送一个小TCP报文段;
2.服务器用一个小TCP报文段做出确认和响应;
3.客户向服务器返回确认和一个HTTP请求报文;
4.服务器返回相应HTML文件;

HTTP规范
RFC 1945 , RFC 2616

用ASCII文本书写
HTTP协议有两类消息,请求消息(request)和响应消息(response)

请求行 HTTP请求报文的第一行

方法

首部行 请求行后继的其它行,包含一些会话信息

空行 回车换行,分隔首部行和实体体

实体体(entity body)
GET方法下实体体为空
POST方法下实体体包含表单信息

状态行

常见状态码

首部行

空行

实体体
包含了所请求的对象

HTTP是无状态协议,但cookie技术允许服务器识别用户
cookie在无状态的HTTP之上建立一个用户会话层

参见 [RFC 6265]

cookie组件

cookie技术的争议在于它可能泄露用户的隐私

代表原Web服务器来响应HTTP请求的网络实体

Web缓冲器通常由ISP购买并安装

允许缓存器证实其缓存的副本是新的。
如果缓存器有web对象最新的版本,则初始服务器不需要向缓存器发送该web对象

在HTTP请求消息中声明所持有版本的日期
If-modified-since: <date>

如果缓存的版本是最新的,则响应消息中不包含对象
HTTP/1.0 304 Not Modified

内容分发网络(Content Distribution Network,CDN)
基于缓存器技术,CDN公司在因特网上安装许多地理上分散的缓存器,使得大流量本地化。
有共享CDN(Akamai,Limelight),专用CDN(谷歌,微软)

‘贰’ 计算机网络协议有哪些

计算机网络协议有:


TCP/IP协议


HTTP协议


FTP协议


SMTP协议


DNS协议等。


TCP/IP协议:是Internet最基本的协议,也是最重要的协议之一。它包含了一系列协议,如传输控制协议TCP、网络协议IP等。TCP负责数据的传输,确保数据在传输过程中的可靠性和完整性;IP负责数据的路由和寻址。这两个协议的配合使用,使得计算机之间能够通过网络进行通信和数据交换。


HTTP协议:是互联网上应用最广泛的协议之一,用于实现Web浏览器与Web服务器之间的通信。HTTP协议定义了数据如何在客户端和服务器之间进行交换,包括请求和响应的格式以及数据传输的方式。通过这个协议,我们可以在网上浏览各种网页和进行各种在线操作。


FTP协议:文件传输协议,用于在网络间传输文件。通过FTP协议,用户可以在本地计算机和远程计算机之间上传和下载文件。这个协议在互联网上的应用非常广泛,尤其是在需要上传和下载大量数据的场合。


SMTP协议:简单邮件传输协议,用于在网络上发送电子邮件。通过SMTP协议,电子邮件可以从发送者的计算机发送到接收者的计算机。这个协议在电子邮件的发送过程中起着关键的作用。除此之外还有DNS协议:域名系统协议,用于将域名转换为IP地址,使得我们在浏览器上可以通过域名访问网站。总的来说,计算机网络协议的这些组成部分共同协作,实现了计算机之间的通信和数据交换。

‘叁’ http是什么意思

http:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。

1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。

(3)计算机网络基础http扩展阅读:

运作方式:

在WWW中,“客户”与“服务器”是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器。

基于HTTP协议的客户/服务器模式的信息交换过程,它分四个过程:建立连接、发送请求信息、发送响应信息、关闭连接。

HTTP协议是基于请求/响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

服务器接到请求后,给予相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。其实简单说就是任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用户请求。

你的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由IP地址指定的URL。

驻留程序接收到请求,在进行必要的操作后回送所要求的文件。在这一过程中,在网络上发送和接收的数据已经被分成一个或多个数据包(packet),每个数据包包括:要传送的数据;控制信息,即告诉网络怎样处理数据包。

TCP/IP决定了每个数据包的格式。如果事先不告诉你,你可能不会知道信息被分成用于传输和再重新组合起来的许多小块。

许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是在用户代理(UA)和源服务器(O)之间通过一个单独的连接来完成。

当一个或多个中介出现在请求/响应链中时,情况就变得复杂一些。中介有三种:代理(Proxy)、网关(Gateway)和通道(Tunnel)。

一个代理根据URI的绝对格式来接受请求,重写全部或部分消息,通过URI的标识把已格式化过的请求发送到服务器。网关是一个接收代理,作为一些其它服务器的上层,并且如果必须的话,可以把请求翻译给下层的服务器协议。

一个通道作为不改变消息的两个连接之间的中继点。当通讯需要通过一个中介(例如:防火墙等)或者是中介不能识别消息的内容时,通道经常被使用。

‘肆’ http协议是什么

http

超文本传输协议 (HTTP-Hypertext transfer protocol) 是分布式,协作式,超媒体系统应用之间的通信协议。是万维网(world wide web)交换信息的基础。

WWW是环球信息网(World Wide Web )万维网 。

cn中国大陆

com为commercial简称,表示商业性质的,com结尾的域名为最早通用的顶级域名。

net

NET

中文意思是:网,网状物。

现在泛指互联网,网络技术。

后缀为net是网络服务公司,为个人或商业提供服务。

‘伍’ http是什么

HTTP全称是HyperText Transfer Protocal,即超文本传输协议,从1990年开始就在WWW上广泛应用,是现今在WWW上应用最多的协议,HTTP是应用层协议,当你上网浏览网页的时候,浏览器和web服务器之间就会通过HTTP在Internet上进行数据的发送和接收。HTTP是一个基于请求/响应模式的、无状态的协议。即我们通常所说的Request/Response。

HTTP特点:

支持客户端/服务器模式

简单快速:客户向服务器请求服务时,只需传送请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快

灵活:HTTP允许传输任意类型的数据对象,正在传输的类型由Content-Type加以标记

无连接:无连接的含义是限制每次链接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开链接,采用这种方式可以节省时间

无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能会导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就比较快

‘陆’ 计算机网络-Http/Https基础

一、前言

主要包括:1、http基础:TCP/IP,TCP协议,IP协议,DNS协议,URI与URL;

2、http协议:http报文,http方法,http状态码,常见问题

名词解释:

(1)HTTP(HyperText Transfer Protocol)超文本传输协议

(2)URL(Uniform Resource Locator)统一资源定位符

(3)URI(Uniform Resource Identifer)统一资源标识符

(4)TCP(Transmission Control Protocol)传输控制协议

(5)IP(Internet Protocol)网际协议

(6)UDP(User Data Protocol)用户数据报协议

(7)MAC地址(Media Access Control)媒体访问控制地址/物理地址/硬件地址

(8)ARP协议(Address Resolution Protocol)地址解析协议

二、HTTP基础

2.1TCP/IP

TCP/IP是互联网相关的各类协议族的总称,而http是TCP/IP协议族中的一个子集。

TCP/IP协议族可以分为四层:

(1)应用层:决定向用户提供 应用服务时通信的活动 ,TCP/IP协议族内预存了各类通用的应用服务,如:http,ftp,dns等。

(2)传输层:提供处于网络连接中的两台计算机之间的 数据传输 ,包含两个协议:tcp,udp。

(3)网络层:用来处理 网络上流动的数据包 ,在众多的选项中选择一条传输线路,将数据包传送到对方计算机。包含的协议:IP协议。

(4)数据链路层:用来 处理连接网络的硬件 部分。

2.2 IP协议

IP协议属于网络层,负责处理网络上流动的数据包。为了保证传送成功,需要满足各类条件,其中两个重要的条件时IP地址和MAC地址。

(1)IP地址,指明了节点被分配到的地址;

(2)MAC地址,指网卡所属的固定地址;

(3)IP地址可以和MAC地址进行配对,IP地址可以变换,但是MAC地址基本上不会更改;

(4)使用ARP地址解析协议可以根据通信方的IP地址反查出对应的MAC地址

2.3 TCP协议

TCP协议位于传输层,提供 可靠的字节流服务 (也就是说,将大数据分隔成以报文段为单位的数据包进行管理)。

为了确保数据准确无误的到达目标处,TCP协议通常采用三次握手策略。

如果在握手的过程中某一个阶段莫名的 中断 了, TCP协议会再次以相同的顺序发送相同的数据包

2.4DNS协议

DNS协议位于应用层,提供域名到IP地址之间的解析服务。

2.5 URI和URL

URI是某一个协议方案表示的 资源的定位标识符 ,协议方案是指访问资源所使用的协议类型,如:http,ftp,file等。

URL用字符串标识某一个互联网资源 ,而 URL表示资源的地点,URL是URI的子集。

2.6 HTTP协议

HTTP协议用于客户端和服务器端之间的通信。请求必定由客户端发出,而服务器端回复响应。

HTTP协议不保存状态,为 无状态协议 。这是为了更快的处理大量事务,确保协议的可伸缩性而特意设计的。

但是随着Web的不断发展,这一特性也引发了一些问题,如:如何保持登录状态、如何记录用户信息等,为了解决这一问题,引入了Cookie技术。

2.6.1常见状态码

2XX 成功

200 OK,表示从客户端发来的请求在服务器端被正确处理

204 No content,表示请求成功,但响应报文不含实体的主体部分

205 Reset Content,表示请求成功,但响应报文不含实体的主体部分,但是与 204 响应不同在于要求请求方重置内容

206 Partial Content,进行范围请求

3XX 重定向

301 moved permanently,永久性重定向,表示资源已被分配了新的 URL

302 found,临时性重定向,表示资源临时被分配了新的 URL

303 see other,表示资源存在着另一个 URL,应使用 GET 方法获取资源

304 not modified,表示服务器允许访问资源,但因发生请求未满足条件的情况

307 temporary redirect,临时重定向,和302含义类似,但是期望客户端保持请求方法不变向新的地址发出请求

4XX 客户端错误

400 bad request,请求报文存在语法错误

401 unauthorized,表示发送的请求需要有通过 HTTP 认证的认证信息

403 forbidden,表示对请求资源的访问被服务器拒绝

404 not found,表示在服务器上没有找到请求的资源

5XX 服务器错误

500 internal sever error,表示服务器端在执行请求时发生了错误

501 Not Implemented,表示服务器不支持当前请求所需要的某个功能

503 service unavailable,表明服务器暂时处于超负载或正在停机维护,无法处理请求

2.6.2HTTP报文头部(HTTP首部)

| 通用字段 | ** 作用** |
| Cache-Control | 控制缓存的行为 |
| Connection | 浏览器想要优先使用的连接类型,比如:keep-alive |
| Date | 创建报文时间 |
| Pragma | 报文指令 |
| Via | 代理服务器相关信息 |
| Transfer-Encoding | 传输编码方式 |
| Upgrade | 要求客户端升级协议 |
| Warning | 在内容中可能存在错误 |

| ** 请求字段** | ** 作用** |
| Accept | 能正确接收的媒体类型 |
| Accept-Charset | 能正确接收的字符集 |
| Accept-Encoding | 能正确接收的编码格式列表 |
| Accept-Language | 能正确接收的语言列表 |
| Expect | 期待服务端的指定行为 |
| From | 请求方邮箱地址 |
| Host | 服务器的域名 |
| If-Match | 两端资源标记比较 |
| If-Modified-Since | 本地资源未修改返回 304(比较时间) |
| If-None-Match | 本地资源未修改返回 304(比较标记) |
| User-Agent | 客户端信息 |
| Max-Forwards | 限制可被代理及网关转发的次数 |
| Proxy-Authorization | 向代理服务器发送验证信息 |
| Range | 请求某个内容的一部分 |

| Referer | 示浏览器所访问的前一个页面 |
| TE | 传输编码方式 |

| 响应字段 | 作用 |
| Accept-Ranges | 是否支持某些种类的范围 |
| Age | 资源在代理缓存中存在的时间 |
| ETag | 资源标识 |
| Location | 客户端重定向到某个 URL |
| Proxy-Authenticate | 向代理服务器发送验证信息 |
| Server | 服务器名字 |
| WWW-Authenticate | 获取资源需要的验证信息 |

| 实体字段 | 作用 |
| Allow | 资源的正确请求方式 |
| Content-Encoding | 内容的编码格式 |
| Content-Language | 内容使用的语言 |
| Content-Length | request body 长度 |
| Content-Location | 返回数据的备用地址 |
| Content-MD5 | Base64加密格式的内容 MD5检验值 |
| Content-Range | 内容的位置范围 |
| Content-Type | 内容的媒体类型 |
| Expires | 内容的过期时间 |
| Last_modified | 内容的最后修改时间 |

2.6.3 HTTP方法

三****、HTTPS基础

HTTPS 还是通过了 HTTP 来传输信息,但是信息通过 TLS 协议进行了加密。

3.1 TLS

TLS 协议位于传输层之上,应用层之下。首次进行 TLS 协议传输需要两个 RTT ,接下来可以通过 Session Resumption 减少到一个 RTT。(RTT表示发送端发送数据到接收到对端数据所需的往返时间)

在 TLS 中使用了两种加密技术,分别为:对称加密和非对称加密。

对称加密:

对称加密就是两边拥有相同的秘钥,两边都知道如何将密文加密解密。

非对称加密:

有公钥私钥之分,公钥所有人都可以知道,可以将数据用公钥加密,但是将数据解密必须使用私钥解密,私钥只有分发公钥的一方才知道。

3.2 TLS 握手过程如下图:

(1)客户端发送一个随机值,需要的协议和加密方式

(2)服务端收到客户端的随机值,自己也产生一个随机值,并根据客户端需求的协议和加密方式来使用对应的方式,发送自己的证书(如果需要验证客户端证书需要说明)

(3)客户端收到服务端的证书并验证是否有效,验证通过会再生成一个随机值,通过服务端证书的公钥去加密这个随机值并发送给服务端,如果服务端需要验证客户端证书的话会附带证书

(4)服务端收到加密过的随机值并使用私钥解密获得第三个随机值,这时候两端都拥有了三个随机值,可以通过这三个随机值按照之前约定的加密方式生成密钥,接下来的通信就可以通过该密钥来加密解密

通过以上步骤可知,在 TLS 握手阶段,两端使用非对称加密的方式来通信,但是因为非对称加密损耗的性能比对称加密大,所以在 正式传输数据 时,两端使用 对称加密 的方式通信。

PS:以上说明的都是 TLS 1.2 协议的握手情况 ,在 1.3 协议中,首次建立连接只需要一个 RTT,后面恢复连接不需要 RTT 了。

四、GET和POST的区别

从技术上说:

1、get请求能缓存,post不能;

2、post相对于get来说,安全一点点,因为get请求都会包含在URL里,会被浏览器保存历史记录,post不会,但是在抓包的情况是一样的。

3、post可以request body来传递比get更多的数据,get米有这个技术。

4、url长度有限制,会影响get请求,长度限制是浏览器限制规定的,不是rfc(互联网通信协议)规定的。

5、post支持更多的 编码类型 且不对 数据类型 限制