七层体系架构,协议,协议atight

HTTP之前,先了解一些计算机网络通信的基础。

HTTP协议:即超文本传输协议(Hypertext transfer protocol)。是一种详细规定了浏览器和Web服务器之间互相通信的规则,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。在Internet中所有的传输都是通过TCP/IP进行的。HTTP协议作为TCP/IP模型中应用层的协议也不例外。HTTP协议通常承载于TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

无状态协议:协议的状态是指下一次传输可以“记住”这次传输信息的能力。HTTP是不会为了下一次连接而维护这次连接所传输的信息,为了保证服务器内存。比如客户获得一张网页之后关闭浏览器,然后再一次启动浏览器,再登陆该网站,但是服务器并不知道客户关闭了一次浏览器。由于Web服务器要面对很多浏览器的并发访问,为了提高Web服务器对并发访问的处理能力,在设计HTTP协议时规定Web服务器发送HTTP应答报文和文档时,不保存发出请求的Web浏览器进程的任何状态信息。这有可能出现一个浏览器在短短几秒之内两次访问同一对象时,服务器进程不会因为已经给它发过应答报文而不接受第二期服务请求。由于Web服务器不保存发送请求的Web浏览器进程的任何信息,因此HTTP协议属于无状态协议(Stateless Protocol)。

HTTP协议是无状态的和Connection: keep-alive的区别:无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。从另一方面讲,打开一个服务器上的网页和你之前打开这个服务器上的网页之间没有任何联系。HTTP是一个无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,更不能代表HTTP使用的是UDP协议(无连接)。从HTTP/1.1起,默认都开启了Keep-Alive,保持连接特性,简单地说,当一个网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接不会关闭,如果客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接。Keep-Alive不会永久保持连接,它有一个保持时间,可以在不同的服务器软件(如Apache)中设定这个时间。

HTTP中文译名问题HTTP超文本传输协议,听上去像是传输层的协议一样,但事实上大家都知道HTTP和FTP一样都是属于应用层的协议。既然是应用层的协议,怎 么就取这样一个误导人的名称?在对TCP/IP协议还不熟悉的时候,这很容易让人误解和纳闷的。在wiki上有这么一段话:HTTP在中国大陆被翻译为“超文本传输协议”,因为“transfer”在中文里有“传输”的含意。但依据 HTTP 定制者之一的 Roy Fielding博士的论文[1](6.5.3节),作者专门强调“transfer”表示的是“(表述状态的)转移” (Representational State Transfer),而不是“传输”(transport)。故其中文译名“超文本传输协议”恰恰反映了这种误解。更符合原义的译名应该为“超文本转移协议”。

HTTP协议的主要特点可概括如下:

支持客户/服务器模式。支持基本认证和安全认证。

简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

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

HTTP 0.9和1.0使用非持续连接:限制每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接。HTTP 1.1使用持续连接:不必为每个Web对象创建一个新的连接,一个连接可以传送多个对象,采用这种方式可以节省传输时间。

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

永远都是客户端发起请求,服务器回送响应。这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。【Comment: Socket技术可以让Server主动发消息给客户端。】

HTTP默认的端口号为80,HTTPS的端口号为443。

一次HTTP操作称为一个事务,其工作过程可分为四步:

首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。

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

服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。HTTP是运行于TCP协议(传输层协议)之上,而TCP是一个端到端的面向连接的协议。所谓的端到端可以理解为进程到进程之间的通信。所以HTTP在开始传输之前,首先需要建立TCP连接,而TCP连接的过程需要所谓的“三次握手”。在TCP三次握手之后,建立了TCP连接,此时HTTP就可以进行传输了。一个重要的概念是面向连接,既HTTP在传输完成之间并不断开TCP连接。在HTTP1.1中(通过Connection头设置)这是默认行为。

每个头域由一个域名,冒号(:)和域值三部分组成。域名是大小写无关的,域值前可以添加任何数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。HTTP消息由客户端到服务器的请求和服务器到客户端的响应组成。请求消息和响应消息都是由开始行(对于请求消息,开始行就是请求行,对于响应消息,开始行就是状态行),消息报头(可选),空行(只有CRLF的行),消息正文(可选)组成。

1、 请求消息

请求头,每一个报头域都是由名字+“:”+空格+值 组成,消息报头域的名字是大小写无关的。例如Accept-Language: en

可选的消息体 请求行和标题必须以<CR><LF>作为结尾(也就是,回车然后换行)。空行内必须只有<CR><LF>而无其他空格。在HTTP/1.1协议中,所有的请求头,除post外,都是可选的。

(1)请求行

以一个请求方法开头,以空格分开,后面跟着请求的URI和协议的版本。

格式如下:Method Request-URI HTTP-Version CRLF

Method表示请求方法;

Request-URI是一个统一资源标识符;

HTTP-Version表示请求的HTTP协议版本;

CRLF表示回车和换行(除了作为结尾的CRLF外,不允许出现单独的CR或LF字符)。

a.请求方法:

(2)请求报头请求报头允许客户端向服务器端传递请求的附加信息以及客户端自身的信息。常用的请求报头:

2、响应消息

HTTP响应由三部分组成,分别是:状态行、响应报头、响应正文。客户端向服务器发送一个请求,服务器以一个状态行作为响应,响应的内容包括:消息协议的版本、成功或者错误编码、服务器信息、实体元信息以及必要的实体内容。根据响应类别的类别,服务器响应里可以含实体内容,但不是所有的响应都有实体内容。(1)状态行响应头第一行也称为状态行,格式如下:

a.状态响应码:无论你何时浏览一个网页,你的电脑都会通过一个使用HTTP协议的服务器来获取所请求的数据。在你请求的网页显示在浏览器之前,支配网页的网站服务器会返回一个包含有状态码的HTTP头文件。这个状态码提供了有关所请求网页的相关条件信息。如果一切正常,一个标准网页会收到一条诸如200的状态码。当然我们的目的不是去研究200响应码,而是去探讨那些代表出现错误信息的服务器头文件响应码,例如表示“未找到指定网页”的404码。

(2)响应报头服务器需要传递许多附加信息,这些信息不能全放在状态行里。因此,需要另行定义响应报头,用来描述这些附加信息。响应报头主要描述服务器的信息和Request-URI的信息。常用的响应报头:

下面是一个真实的例子:

Web缓存(cache)位于Web服务器和客户端之间,缓存会根据请求保存输出内容的副本,例如html页面,图片,文件,当下一个请求来到的时候:如果是相同的URL,缓存直接使用副本响应访问请求,而不是向源服务器再次发送请求。HTTP协议定义了相关的消息头来使Web缓存尽可能好的工作。

- 第二次浏览器访问相同资源的时候会把上次服务器发送的etag的值在请求头的if-none-match字段中返回给服务器。服务器判断这个值跟现在内容生成的etag是否一致,如果一致,返回304,不返回内容,如果不同,则返回200并把新内容一并返回(包括新的etag)

(1)、Freshness:允许一个回应消息可以在源服务器不被重新检查,并且可以由服务器和客户端来控制。例如,Expires回应头给了一个文档不可用的时间。Cache-Control中的max-age标识指明了缓存的最长时间;(2)、Validation:用来检查以一个缓存的回应是否仍然可用。例如,如果一个回应有一个Last-Modified回应头,缓存能够使用If-Modified-Since来判断是否已改变,以便判断根据情况发送请求;(3)、Invalidation:在另一个请求通过缓存的时候,常常有一个副作用。例如,如果一个URL关联到一个缓存回应,但是其后跟着POST、PUT和DELETE的请求的话,缓存就会过期。

1. 断点续传的实现原理HTTP协议的GET方法,支持只请求某个资源的某一部分;206 Partial Content 部分内容响应;Range 请求的资源范围;Content-Range 响应的资源范围;在连接断开重连时,客户端只请求该资源未下载的部分,而不是重新请求整个资源,来实现断点续传。分块请求资源实例:

2. 多线程下载的原理下载工具开启多个发出HTTP请求的线程;每个HTTP请求只请求资源文件的一部分:Content-Range: bytes 20000-40000/47000;合并每个线程下载的文件。

(1)、突破自身IP访问限制,访问国外站点。如:教育网、169网等网络用户可以通过代理访问国外网站;(2)、访问一些单位或团体内部资源,如某大学FTP(前提是该代理地址在该资源的允许访问范围之内),使用教育网内地址段免费代理服务器,就可以用于对教育 网开放的各类FTP下载上传,以及各类资料查询共享等服务;(3)、突破中国电信的IP封锁:中国电信用户有很多网站是被限制访问的,这种限制是人为的,不同Serve对地址的封锁是不同的。所以不能访问时可以换一个国外的代理服务器试试;(4)、提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,以提高访问速度;(5)、隐藏真实IP:上网者也可以通过这种方法隐藏自己的IP,免受攻击。对于客户端浏览器而言,HTTP代理服务器相当于服务器。而对于Web服务器而言,HTTP代理服务器又担当了客户端的角色。

4.虚拟主机        虚拟主机:是在网络服务器上划分出一定的磁盘空间供用户放置站点、应用组件等,提供必要的站点功能与数据存放、传输功能。        所谓虚拟主机,也叫“网站空间”就是把一台运行在互联网上的服务器划分成多个“虚拟”的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW、FTP、E-mail等)功能。一台服务器上的不同虚拟主机是各自独立的,并由用户自行管理。但一台服务器主机只能够支持一定数量的虚拟主机,当超过这个数量时,用户将会感到性能急剧下降。

THE END
0.TCP/IP详解基于TCP/IP的参考模型将协议分成5个层次,分别是物理层、链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。 从传输层开始以下都在内核中。 IOS 各层的协议: TCP/IP 各层协议 TCP/IP协议被称为传输控制协议/互联网协议,又称网络通讯协议(Transmission ControlProtocol)。是由网络层的jvzquC41dnuh0lxfp0tfv8|gkzooa==2287828ftvkimg8igvcomu8632;875;=
1.计算机网络(四)TCP/IP四层模型详解tcpip四层模型TCP/IP 模型是实际应用标准吗? 是的,互联网几乎所有通信都基于 TCP/IP 协议族。 总结 TCP/IP 四层模型:网络接口层、网络层、传输层、应用层。 各层之间功能分明,协议丰富。 是现代互联网通信的基础。 六、协议原理、具体数据结构 1.IP 协议(网络层) jvzquC41dnuh0lxfp0tfv8tpn{stew4ctvodnn4fgvgjn|4374;:79>6
2.详解TCP/IP网络模型tcp模型网络模型有好几种,其中最常讨论的有俩种:OSI七层参考模型、TCP/IP四层参考模型。OSI模型是国际标准模型,结构分的很细,然而既复杂又不实用,我们这篇文章来讲已经得到广泛应用的TCP/IP模型,同时也是面试也问的比较多的。 很多人可能会有个疑问,TCP/IP模型到底是分了四层还是五层,有些资料说四层,有些资料说五层jvzquC41dnuh0lxfp0tfv8|w{wnbpp5:255bt}neng5eg}fknu524?827467
3.互联网基石:TCP/IP四层模型,由浅入深直击原理!tcpip参考模型本文深入解析TCP/IP四层模型,涵盖网络接口层、网络层、传输层及应用层,讲解各层功能与常见协议。 什么是TCP/IP? 从TCP/IP看包含两个部分: TCP IP TCP/IP 实际包括几十个 Internet协议,但只有少数是核心协议,其中有两个通常被认为是最重要的,就是我们上面提到的 TCP 和 IP。 IP 属于OSI网络层(第三层),在互联 jvzquC41dnuh0lxfp0tfv8r2a8637B6381gsvrhng1jfvjnnu1738B>62:7
4.OSI七层协议模型、TCP/IP四层模型和五层协议体系结构之间的关系一、OSI七层模型 OSI七层协议模型主要是:应用层(Application)、表示层(Presentation)、会话层(Session)、传输层(Transport)、网络层(Network)、数据链路层(Data Link)、物理层(Physical)。 二、TCP/IP四层模型 TCP/IP是一个四层的体系结构,主要包括:应用层、运输层、网际层和网络接口层。从实质上讲,只有上边三层jvzquC41pki/e€sw0gjv0ls1kplp1:5651819>3jvo
5.2024年上半年网络工程师综合知识真题与答案(文字版)A.查看IP组播路由表信息 B.查看二层组播转发表信息. C.查看组播组的成员端口信息 D.查看组播转发表信息 信管网参考答案:D 查看解析:www.cnitpm.com/st/6323028247.html 44、数据链路层的帧结构中,帧检验序列的作用是() A.保证数据的完整性和准确性 B.标识数据段的起始和结束 C.提供数据的可靠传输 D.实现jvzquC41o0iok}uo0eun1yr313<199>l:qlut>n20nuou
6.计算机网络层次和TCP/IP协议族常用协议名称以及端口计算机网络四层模型与OSI七层模型对应关系详解,包含TCP/UDP端口号、DNS解析、HTTPS加密等核心协议。了解应用层、传输层、网络层及数据链路层的协议功能,掌握CSMA/CD、令牌环等关键技术。四层模型简化OSI结构,便于理解网络通信原理。jvzquC41enuvf7ygpekov7hqo1jfxnqqrgx0c{ykenk03@52679
7.网络安全与防范论文汇总十篇目前网络信息安全面临的威胁主要来自于以下几个方面: 3.1 tcp/ip协议存在安全漏洞 目前英特网上广泛使用的网络协议是tcp/ip协议,而tcp/ip协议恰恰存在安全漏洞。如ip层协议就有许多安全缺陷。ip地址可以软件设置,这就造成了地址假冒和地址欺骗两类安全隐患;ip协议支持源路由方式,即源点可以指定信息包传送到目的节点的jvzquC41yy}/z~jujw4dqv3ep1nbq€jp15?8::3jvor
8.网络安全主动防护汇总十篇协议漏洞主要是计算机网络通信系统的通信协议进行划分的,计算机网络主要以TCP/IP协议为基础进行通信,由于TCP/IP缺陷形成的漏洞,导致计算机网络安全性能存在缺陷,被划分为协议漏洞。协议漏洞在网络安全中没有严格的区分标准,但是病毒利用协议漏洞对网络进行攻击产生的影响具有一定的相似性,就需要从TCP/IP协议层对整个计算机进jvzquC41yy}/z~jujw4dqv3ep1nbq€jp16:5;:3jvor
9.下列给出的协议中,属于TCP/IP协议结构的应用层是()下列给出的协议中,属于TCP/IP协议结构的应用层是() A.UDP B.IP C.TCP D.Telnet 你可能感兴趣的试题 单项选择题 ()是TCP/IP模型传输层中的无连接协议。 A.TCP协议 B.UDP协议 C.IP协议 D.ICMP协议 单项选择题 网络协议的三个要素:语法、语义和() jvzquC41yy}/rypcq0ipo8ykmw5tjryk1;jc899633hg4=