中企动力 > 头条 > 上海网站建设网页制

网站性能检测评分

注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。

上海网站建设网页制

上海网站建设——计算机网络 营销视频课程

img

曹孤菱

关注

浏览器输入一个URL地址发生的事情

1、域名解析:浏览器获得URL地址,向操作系统请求该URL对应的IP地址,操作系统查询DNS(首先查询本地HOST文件,没有则查询网络)获得对应的IP地址

解释:URL分割成几个部分:协议、网络地址、资源路径

协议:指从该计算机获取资源的方式,常见的是HTTP、FTP

网络地址:可以是域名或者是IP地址,也可以包括端口号,如果不注明端口号,默认是80端口

1、如果地址不是一个IP地址,则需要通过DNS(域名系统)将该地址解析成IP地址,IP地址对应着网络上的一台计算机,DNS服务器本身也有IP,你的网络设置包含DNS服务器的IP,例如,abc不是一个IP,则需要向DNS询问请求abc对应的IP,获得IP,在这个过程中,你的电脑直接询问DNS服务器可能没有发现abc对应的IP,就会向它的上级服务器询问,这样依次一层层向上级找,最高可达根节点,直到找到或者全部找不到为止端口号就相当于银行的窗口,不同的窗口负责不同的服务,如果输入abc:8080/,则表示不使用默认的80端口,而使用指定的8080端口

2、确认好了IP和端口号,则可以向该IP地址对应的服务器的该端口号发起TCP连接请求

3、服务器接收到TCP连接请求后,回复可以连接请求

4、浏览器收到回传的数据后,还会向服务器发送数据包,表示三次握手结束

5、三次握手成功后,开始通讯,根据HTTP协议的要求,组织一个请求的数据包,里面包含请求的资源路径、你的身份信息等,例如,abc/images/1/表示的资源路径是images/1/,发送后,服务器响应请求,将数据返回给浏览器,数据可以是根据HTML协议组织的网页,里面包含页面的布局、文字等等,也可以是图片或者脚本程序等,如果资源路径指定的资源不存在,服务器就会返回404错误,如果返回的是一个页面,则根据页面里的一些外链URL地址,重复上述步骤,再次获取

6、渲染页面,并开始响应用户的操作

7、窗口关闭时,浏览器终止与服务器的连接

以上只是基本步骤,还有一些可选的步骤,例如:网页缓存、连接池、加载策略、加密解密、代理中转等TCP表示传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议TCP/IP即传输控制协议/网间协议,是为广域网设计的TCP三次握手和四次挥手。

TCP三次握手:所谓的三次握手,是指建立一个TCP连接时,需要客户端和服务器端总共发送三个包,三次握手的目的是连接服务器的指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换TCP窗口大小信息,在SOCKET编程中,客户端执行connect()时,将会触发三次握手。

解释:

ACK:TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1

SYN:在连接建立时用来同步序号,当SYN=1而ACK=0时,表明这是一个连接请求报文,对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1,因此,SYN置1就表示这是一个连接请求或连接接受报文

FIN:即终结的意思,用来释放一个连接,当FIN=1时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接为什么要进行三次握手(两次确认)?

主要是为了防止客户端发出的已失效的连接请求报文段突然又传送到了服务器端,因而产生错误,考虑一种正常情况,A发出连接请求,但因连接请求报文丢失而未收到确认,于是A再重传一次连接请求,后来收到了确认,建立了连接,数据传输完毕后,就释放了连接,A共发送了两个连接请求报文段,其中第一个丢失,第二个到达了B,正常,再考虑一种异常情况,即A发出的第一个连接请求报文段并没有丢失,而是在某个网络节点长时间滞留了,以致延误到连接释放以后的某个时间才到达B,本来这是一个早已失效的报文段,但B收到此失效的连接请求报文段后,会误以为是A又发出一次新的连接请求,于是就向A发出确认报文段,同意建立连接,假定不采用第三次握手,那么只要B发出确认,新的连接就建立了,一直等待A发送数据过来,使得B的许多资源就浪费了,所以采用三次握手的方法可以防止上述现象的发生,在刚才的情况下,A不会向B发出第二次确认,B由于收不到确认,就知道A并没有要求建立连接

TCP四次挥手:

TCP连接的拆除需要发送四个包,客户端或者服务器端均可主动发起挥手动作,在SOCKET编程中,任何一方执行close()即可产生挥手操作

解释:当A没有数据要发送时,就要释放A这边的连接,A会发送一个报文(没有数据),B收到后会给应用程序一个信,这时候A那边的连接已经关闭,即A不再发送信息(但仍可接收信息),A收到B的确认后进入等待状态,等待B请求释放连接,B数据发送完成后就向A请求连接释放,A收到后回复一个确认信息,并等待2MSL时间

为什么要等待呢?

考虑到这种情况,B向A发送释放连接请求,但这个报文丢失了,A没有接收到不会发送确认信息,B超时会重传,这时A在等待时间内还能够接收到这个请求,再回复一个确认就行了另外服务器B存在一个保活状态,如果A突然死机了,保活时间到了后,B会发送探测信息,以决定是否释放连接常见的状态代码、状态描述:

200 客户端请求成功

400 客户端请求有语法错误,不能被服务器理解

401 请求未经授权

403 服务器收到请求,但是拒绝提供服务

404 请求资源不存在

500 服务器发生了不可预期的错误

503 服务器当前不能处理客户端请求,一段时间后可能恢复

统一资源定位符URL

在说HTTP协议之前必须要先了解URL(统一资源定位符)统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

基本URL包含模式(或称协议)、服务器名称(或IP地址)、路径和文件名,如“协议://授权/路径?查询”。完整的、带有授权部分的普通统一资源标志符语法看上去如下:协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志

文件所在的服务器的名称或IP地址,后面是到达这个文件的路径和文件本身的名称。服务器的名称或IP地址后面有时还跟一个冒号和一个端口号。它也可以包含接触服务器必须的用户名称和密码。路径部分包含等级结构的路径定义,一般来说不同部分之间以斜线(/)分隔。询问部分一般用来传送对服务器上的数据库进行动态询问时所需要的参数。

超文本传送协议HTTP

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。

HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet上的Web服务器上存放的都是超文本信息,客户机需要通过HTTP协议传输所要访问的超文本信息。HTTP包含命令和传输信息,不仅可用于Web访问,也可以用于其他因特网/内联网应用系统之间的通信,从而实现各类应用资源超媒体访问的集成。

HTTP协议是OSI模型中的第七层应用程中协议具有以下特点:

1、支持客户/服务器模式;

2、简单快速;

3、灵活;

4、无连接;

5、无状态;

给一个简单的实例来看看http协议的执行过程上图中用户点击了一个链接指向清华大学院系设置的页面,其URL是http://tsinghua.edu/chn/yxsz/index.htm用http/1.0更具体的说明用户在点击鼠标后发生的事件:

(1)浏览器分析链接指向页面的URL。

(2)浏览器向DNS请求解析http://tsinghua.edu的IP地址。

(3)域名系统DNS解析出清华大学的IP地址为166.111.4.100。

(4)浏览器与服务器建立TCP连接(服务器的IP地址是166.111.4.100,端口号是80)。

(5)浏览器发出取文件命令:GET/chn/yxsz/index.htm。

(6)服务器http://tsinghua.edu做出响应,把文件index.htm发送给浏览器。

(7)释放TCP连接。

(8)浏览器显示“清华大学院系设置”文件index.htm中的所有文件。

浏览器在下载文件时,可以设置为只下载其中的文本部分。这样可使下载的速度加快。在这种情况下,文本中原来嵌入图像或声音的地方只用一个小图标来显示。用户若要下载这些图像或声音,可再用鼠标分别点击这些图标。每点击一次鼠标就重复执行一次类似于上面的8个步骤。也就是先建立TCP连接,再使用TCP连接传送命令和文件,最后释放TCP连接。

HTTP使用了面向连接的TCP作为运输层协议,保证了数据的可靠传输。

HTTP是无连接的

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

早期这么做的原因是 HTTP 协议产生于互联网,因此服务器需要处理同时面向全世界数十万、上百万客户端的网页访问,但每个客户端(即浏览器)与服务器之间交换数据的间歇性较大(即传输具有突发性、瞬时性),并且网页浏览的联想性、发散性导致两次传送的数据关联性很低,大部分通道实际上会很空闲、无端占用资源。因此 HTTP 的设计者有意利用这种特点将协议设计为请求时建连接、请求完释放连接,以尽快将资源释放出来服务其他客户端。

HTTP是无状态的

无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。HTTP 是一个无状态协议,这意味着每个请求都是独立的。

缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP 协议这种特性有优点也有缺点,优点在于解放了服务器,每一次请求“点到为止”不会造成不必要连接占用,缺点在于每次请求会传输大量重复的内容信息。

一次HTTP过程

HTTP协议首先要和服务器建立TCP连接。这是需要三次握手。当三次握手的前两部分完成后(经过了一个RTT时间后),万维网客户就把HTTP请求报文作为第三次握手的第三个报文的数据发送给万维网服务器。万维网服务器收到HTTP请求报文后,就把所请求的文档作为响应报文返回给客户。

HTTP/1.0协议的缺点

HTTP的主要缺点,就是每请求一个文档就要两倍RTT的开销。若一个主页上有很多链接的对象(如图片等)需要一次进行链接,那么每一次链接下载都导致2RTT的开销。另一种开销就是万维网客户和服务器没一次建立新的TCP连接都要分配缓存和变量。

HTTP/1.1协议较好地解决了上面的问题,它使用持续连接。在万维网服务器发送响应后仍然在一段时间内保持这条连接,使同一个客户(浏览器)和服务器可以继续在这条连接上传送后续的HTTP请求报文和响应报文。并且不限于传送同一个页面上链接的文档,而是只要这些文档都在一个服务器上就行。

HTTP/1.1协议的持续连接有两种方式,即非流水线方式和流水线方式。

HTTP的报文结构

HTTP有两类报文:

(1)请求报文—–从客户端向服务器发送请求报文。

(2)响应报文—–从服务器到客户的回答。

HTTP请求报文和响应报文都是由三个部分组成。可以看出这两种报文的区别就在于开始行不同。

(1)开始行,用于区别是请求报文还是响应报文。在请求报文中的开始行叫做请求行,而在响应报文中的开始行就叫做状态行。

(2)首部行,用于说明浏览器、服务器、或报文主体的一些信息。首部可以有好几行,但也可以不用。

(3)实体主体,在请求报文中一般不用这个字段,在响应报文中返回请求的内容,也可以不用。

请求报文的第一行“请求行”只有三个内容,方法,请求资源的URL,以及HTTP的版本。这里的方法是对请求的对象进行的操作,这些方法实际上也就是一些命令,请求报文的类型就是由它采用的方法决定的。

1、OPTIONS

返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性

2、HEAD

向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。

3、GET

向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。

4、POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

5、PUT

向指定资源位置上传其最新内容

6、DELETE

请求服务器删除Request-URL所标识的资源

7、TRACE

回显服务器收到的请求,主要用于测试或诊断

8、CONNECT

img

TOP