CN104199951A - 网页处理方法及装置 - Google Patents

网页处理方法及装置 Download PDF

Info

Publication number
CN104199951A
CN104199951A CN201410466289.6A CN201410466289A CN104199951A CN 104199951 A CN104199951 A CN 104199951A CN 201410466289 A CN201410466289 A CN 201410466289A CN 104199951 A CN104199951 A CN 104199951A
Authority
CN
China
Prior art keywords
compression blocks
deflate
byte
static
webpage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410466289.6A
Other languages
English (en)
Other versions
CN104199951B (zh
Inventor
刘四维
欧阳显雅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu Online Network Technology Beijing Co Ltd
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201410466289.6A priority Critical patent/CN104199951B/zh
Publication of CN104199951A publication Critical patent/CN104199951A/zh
Application granted granted Critical
Publication of CN104199951B publication Critical patent/CN104199951B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种网页处理方法及装置。方法包括:接收浏览器发送的请求访问网页的访问请求;根据访问请求,获取网页所需的动态资源和网页所需的静态资源对应的静态压缩块;对静态压缩块和动态资源进行合并处理,获得网页对应的压缩数据;将压缩数据发送给浏览器。本发明可以在压缩网页的同时,降低服务器的处理负担。

Description

网页处理方法及装置
【技术领域】
本发明涉及计算机技术领域,尤其涉及一种网页处理方法及装置。
【背景技术】
当浏览器需要访问网页时,向服务器发送访问请求,服务器会根据该访问请求生成相应的网页,并将生成的网页作为响应返回给浏览器。
由于网页的数据量一般会非常大,为了减少传输的数据量,服务器可以在每次生成网页后,对网页进行压缩,然后将压缩后的网页作为响应返回给浏览器。浏览器收到压缩后的网页后,解压缩网页。通过对网页进行压缩,可以有效减少传输的数据量,提高服务器的带宽利用率。
但是,服务器针对浏览器的每次请求都进行网页的压缩处理,处理负担较重。
【发明内容】
本发明的多个方面提供一种网页处理方法及装置,用以在压缩网页的同时,降低服务器的处理负担。
本发明的一方面,提供一种网页处理方法,包括:
接收浏览器发送的请求访问网页的访问请求;
根据所述访问请求,获取所述网页所需的动态资源和所述网页所需的静态资源对应的静态压缩块;
对所述静态压缩块和所述动态资源进行合并处理,获得所述网页对应的压缩数据;
将所述压缩数据发送给所述浏览器。
本发明的另一方面,提供一种网页处理装置,包括:
接收模块,用于接收浏览器发送的请求访问网页的访问请求;
获取模块,用于根据所述访问请求,获取所述网页所需的动态资源和所述网页所需的静态资源对应的静态压缩块;
合并处理模块,用于对所述静态压缩块和所述动态资源进行合并处理,获得所述网页对应的压缩数据;
发送模块,用于将所述压缩数据发送给所述浏览器。
在本发明技术方案中,网页处理装置接收浏览器发送的请求访问网页的访问请求,根据访问请求获取该网页所需的动态资源以及该网页所需的静态资源的静态压缩块,之后对静态压缩块和动态资源进行合并处理,获得该网页对应的压缩数据,并将压缩数据发送给浏览器。本发明采用静态资源对应的压缩块代替静态资源,而不是采用静态资源,实现对网页的压缩,有利于减少传输的数据量;另外,由于本发明中的静态资源不随着浏览器的访问请求的变化而变化,这样网页处理装置可以预先对静态资源进行一次压缩生成静态压缩块,在使用时可以直接获取静态压缩块,这与现有技术中针对浏览器的每次请求都对整个网页进行压缩处理的技术方案相比,可以降低网页处理装置的处理负担。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的网页处理方法的流程示意图;
图2为本发明一实施例提供的deflate压缩块拼接格式的示意图;
图3为本发明一实施例提供的deflate非压缩块的格式的示意图;
图4为本发明一实施例提供的第一deflate压缩块和胶水块拼接后的格式的示意图;
图5为本发明一实施例提供的结束块的格式的示意图;
图6为本发明一实施例提供的gzip格式的示意图;
图7为本发明另一实施例提供的网页处理方法的流程示意图;
图8为本发明一实施例提供的网页处理装置的结构示意图;
图9为本发明另一实施例提供的网页处理装置的结构示意图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的网页处理方法的流程示意图。如图1所示,该方法包括:
101、接收浏览器发送的请求访问网页的访问请求。
102、根据上述访问请求,获取上述网页所需的动态资源和上述网页所需的静态资源对应的静态压缩块。
103、对上述静态压缩块和上述动态资源进行拼接处理,获得上述网页对应的压缩数据。
104、将上述压缩数据发送给浏览器。
本实施例的执行主体可以是网页处理装置,例如具体可以是具有压缩处理功能且能够提供网页的服务器。
当浏览器向网页处理装置请求访问某个网页时,网页处理装置确定浏览器请求访问的网页所需的资源,一般网页会包括动态资源和静态资源。静态资源是指需要发送给浏览器但却不会因为日常操作而发生变化的资源。例如,用于描绘网站外观的图片和css代码、在浏览器中运行的js代码、以及页头、页尾等固定内容都属于静态资源。通常这些静态资源会单独存储在静态资源服务器上。相应的,动态资源是指需要根据访问请求的不同而动态生成的内容。例如,对不同用户进行的个性化推荐结果,根据请求参数从数据库里取出的不同内容等都属于动态资源。
在确定浏览器请求访问的网页所需的静态资源和动态资源之后,网页处理装置获取该网页所需的动态资源以及该网页所需的静态资源对应的静态压缩块。其中,静态压缩块是对静态资源进行压缩生成的,其数据量要小于静态资源的数据量。
其中,静态资源对应的静态压缩块可以预先生成并存储。具体的,网页处理装置可以预先采用压缩算法对静态资源进行压缩,获得静态压缩块。另外,由于静态资源不会随浏览器的访问请求发生变化,所以网页处理装置只需预先对静态资源进行一次压缩处理即可,有利于减轻网页处理装置的处理负担。
在获得浏览器请求访问的网页所需的动态资源和静态资源对应的静态压缩块之后,网页处理装置对静态压缩块和动态资源进行合并处理,获得浏览器请求访问的网页对应的压缩数据。之后,网页处理装置将压缩数据发送给浏览器。
对浏览器来说,接收网页处理装置发送的压缩数据,对压缩数据进行解压缩,获得原始网页数据。
在本实施例中,网页处理装置采用静态资源对应的压缩块代替静态资源,而不是采用静态资源,实现对网页的压缩,有利于减少传输的数据量;另外,由于本实施例中的静态资源不随着浏览器的访问请求的变化而变化,这样网页处理装置可以预先对静态资源进行一次压缩生成静态压缩块,当网页处理装置接收到浏览器的访问请求时,可以直接获取静态压缩块,这与现有技术中针对浏览器的每次请求都对整个网页进行压缩处理的技术方案相比,可以降低网页处理装置的处理负担。
值得说明的是,静态资源对应的静态压缩块可以是一个或多个。对每个静态压缩块的处理方式均相同,下面实施例以任意一个静态压缩块为例进行说明。
在一可选实施方式中,上述对静态资源进行压缩采用的压缩算法可以deflate压缩算法,deflate压缩算法是同时使用了LZ77算法与哈夫曼编码(Huffman Coding)的一个无损数据压缩算法。在deflate压缩算法中,“deflate”不是真正意义上的英文单词,而是作为算法名称被使用,可以直译成“缩小”或者“真空”等中文词。例如,网页处理装置可以直接利用deflate压缩算法对静态资源进行压缩,以获得静态压缩块。
deflate压缩算法的详细描述可参见:RFC1951(http://www.ietf.org/rfc/rfc1951.txt)。deflate压缩算法允许多个deflate压缩块和deflate非压缩块同时存在于一个deflate块集合中,每个deflate压缩块不保证字节边界对齐,并且后一个deflate压缩块的前几个比特,与前一个deflate压缩块的最后几个比特,是紧挨着的,有可能共存于同一个字节中,deflate非压缩块保证字节边界对齐。一个deflate压缩块包括多个比特,如果一个deflate压缩块包括的比特数为8的整数倍,那么这个deflate压缩块是对齐字节边界的,否则,不是对齐字节边界的。如图2所示,两个deflate压缩块,连续存储,虚线左侧部分表示第一个deflate压缩块,占用12个比特,虚线右侧部分为第二个deflate压缩块,占用20个比特。第一个deflate压缩块不是对齐字节边界的,第二个压缩块也不是对齐字节边界的,但两个deflate压缩块拼接在一起后,是对齐字节边界的。
对于每个deflate块,其前三个比特含义如下:
第一个比特:结束标志。如果这个deflate块是最后一个块,那么该比特设置为1,否则设置为0。
第二和第三比特:压缩类型。00表示没有压缩,01表示采用固定霍夫曼编码压缩,10表示采用动态霍夫曼编码压缩,11保留字段。
其中,deflate块可以是deflate压缩块或者deflate非压缩块。
当deflate块为deflate非压缩块时,从第4个比特开始到第一个字节边界结束的比特被忽略,从下一个字节开始,deflate非压缩块的格式如下图3所示。其中LEN为非压缩块的字节数,NLEN为LEN的补码(one’s complement),之后是LEN字节长度的非压缩数据。这也就意味着deflate非压缩块是对齐字节边界的。
当deflate块为deflate压缩块时,该块的格式由RFC1951指定,由于本发明实施例不关心这个格式,因此不做进一步阐述。值得说明的是deflate压缩块不保证字节边界对齐。
由于deflate压缩算法要求多个deflate块连续存储,但是由于deflate压缩块不保证字节边界对齐,因此在拼接多个deflate块的时候,需要额外的处理。
为解决上述问题,本实施例采用deflate压缩算法对静态资源进行压缩处理,获得静态压缩块的一种实施方式包括:
采用deflate压缩算法,对静态资源进行压缩,获得第一deflate压缩块;
对上述第一deflate压缩块进行字节边界对齐处理,获得对齐字节边界的静态压缩块。
上述第一deflate压缩块实际上就是deflate压缩块,为便于与后续出现的deflate压缩块进行区分,这里的deflate压缩块称为第一deflate压缩块。这里的第一既没有个数的限定,也没有先后顺序的限定。
网页处理装置采用deflate压缩算法,对静态资源进行压缩,获得第一deflate压缩块的过程可参见现有技术,在此不再赘述。
网页处理装置可以采用多种方式,对第一deflate压缩块进行字节边界对齐处理,获得对齐字节边界的静态压缩块。本实施例提供一种处理方法包括:
在第一deflate压缩块之后拼接胶水块,以获得对齐字节边界的静态压缩块,该胶水块是内容为空的deflate非压缩块。简单的说,该实施方式是在第一deflate压缩块后面追加一个deflate非压缩块,保证这两个deflate块的组合是字节边界对齐的。在本实施方式中,将这个追加的内容为空的deflate非压缩块,称为“胶水块”。这里的“内容为空”是指该胶水块不包含任何有效或有意义的数据,结合图3所示deflate非压缩块的结构,内容为空主要是指NLEN字节之后的非压缩数据为空。
上述胶水块只是为了保证第一deflate压缩块能够以字节边界对齐,所以其内容为空,根据前面图3提到的deflate非压缩块的格式,可以得到胶水块的一种实现格式如下:第一个比特为0,表示该胶水块不是最后一个deflate块;第二和第三比特为00,表示该胶水块是非压缩块;从第4比特到第一个字节边界为止的比特可以被忽略;自下一个字节开始的4个字节分别为:0x00,0x00,0xFF,0xFF,前2个字节表示长度,由于胶水块内容为空,所以该长度实际上为0,后2个字节表示长度的补码(one's complement)。
图4所示为第一deflate压缩块和胶水块拼接后的示意图。如图4所示,图4中的1-8比特隶属于同一个字节,且该字节是第一deflate压缩块的最后一个字节,也是胶水块的第一个字节,第一deflate压缩块和胶水块共享该字节;其中虚线左侧部分属于第一deflate压缩块,虚线右侧部分属于胶水块,且胶水块的前三个比特(即图4中的第4,5,6比特)为000,图4中的第7,8比特忽略。
值得说明的是,虽然胶水块具有上述实现格式,但由于胶水块中从第4比特到第一个字节边界为止的比特可以被忽略,所以根据实际被忽略的比特数的不同,胶水块的长度并不相同。
基于上述胶水块的实现格式,上述在第一deflate压缩块之后拼接胶水块,以获得对齐字节边界的静态压缩块的实施过程可以包括:
若第一deflate压缩块的最后一个字节的剩余比特数大于或等于3,将胶水块的第一个字节的第一至第三比特填充到第一deflate压缩块的最后一个字节中的最后一个有效比特之后的三个比特,并将胶水块中除第一个字节之外的其他字节添加到第一deflate压缩块的最后一个字节之后,以获得对齐字节边界的静态压缩块;
这里所说的“有效比特”指的是包含在第一deflate压缩块的最后一个字节内,且包含有效或有意义数据的比特。比如说,第一deflate压缩块由34个比特组成,需要5个字节(40个比特)存储,那么它的最后一个字节的第1比特和第2比特用于存储压缩块的最后2个比特,最后一个字节的第3,第4和第5个比特用于存储胶水块的前3个比特,最后一个字节的第6,第7和第8个比特内容被忽略。就是说,deflate压缩块的最后一个字节也存储了胶水块的第一个字节的内容。
若第一deflate压缩块的最后一个字节的剩余比特数小于3,在第一deflate压缩块的最后一个字节的剩余比特中填充胶水块的第一个字节的第一至第三比特中的比特,并在第一deflate压缩块的最后一个字节后添加用以填充胶水块的第一个字节的第一至第三比特中未被填充到第一deflate压缩块的最后一个字节的比特的一个字节以及胶水块中除第一个字节之外的其他字节,以获得对齐字节边界的静态压缩块。
基于上述胶水块,上述步骤103,即对静态压缩块和动态资源进行合并处理,获得网页对应的压缩数据的一种实施方式包括:
对动态资源进行分割处理,以获得动态资源对应的deflate非压缩块;
对静态压缩块和动态资源对应的deflate非压缩块进行拼接处理,获得第一拼接处理结果;
在第一拼接处理结果之后添加第一结束块,以获得压缩数据,第一结束块是第一比特为1而内容为空的deflate非压缩块。
对于deflate非压缩块,其本身是字节边界对齐的,因此网页处理装置可以对动态资源进行分割处理,获得对应的deflate非压缩块。由于静态压缩块也是字节边界对齐的,所以可以将任意两个deflate非压缩块,以及deflate非压缩块与deflate压缩块和胶水块组合(即静态压缩块)进行拼接,此时的拼接过程就是两个字符串的拼接过程,不会影响网页处理装置的性能。
值得说明的是,在多个deflate非压缩块和静态压缩块进行拼接的过程中,若前面的每个块(这里的块包括deflate非压缩块和静态压缩块)的第一个比特都是0,则需要最后一个块的第一个比特必须是1,表示这个块是最后一个块。但是考虑到,静态压缩块和动态资源对应的deflate非压缩块之间的拼接顺序是由浏览器发送的访问请求确定的,不同访问请求会导致静态压缩块和动态资源对应的deflate非压缩块之间的拼接顺序不同。也就是说,网页处理装置无法预先获知静态压缩块和动态资源对应的deflate非压缩块中哪个块属于最后一个块。为解决最后一个块的问题,网页处理装置提供一种“结束块”的概念。结束块也是一个内容为空的deflate非压缩块,和胶水块类似,它没有任何内容,只是为了标明这个块是最后一个deflate块。与胶水块不同的是,结束块的第一个比特需要是1,表示结束。这里的“内容为空”是指该结束块不包含任何有效或有意义的数据,结合图3所示deflate非压缩块的结构,内容为空主要是指NLEN字节之后的非压缩数据为空。基于前面图3所示的deflate非压缩块,结束块的一种实现格式如图5所示:
第一个字节:第一个比特为1,标识结束,第二和第三比特为0,表示这是一个非压缩块,第四到第八比特可以被忽略,例如可以直接设置为0,这样第一个字节为:0x01;第二到第五字节分别为:0x00,0x00,0xFF,0xFF,前2字节表示长度,由于结束块为空,所以该长度实际上为0,后2个字节表示长度的补码。
在上述实施方式中,网页处理装置不需要对动态资源进行压缩,直接将静态资源对应的静态压缩块与动态资源进行拼接,获得网页对应的压缩数据,实际上相当于字符串的拼接,只需极少的CPU资源,因此有利于降低网页处理装置的处理负担,对网页处理装置的性能几乎没有影响。另外,在压缩比方面,当网页中的静态资源的数据量较大时,通过静态压缩块代替静态资源,能有效压缩数据,例如对于在某些应用过程中,发现可以将原始网页数据压缩到50%左右,因此可以极大的减少数据传输量。
在上述实施方式中,网页处理装置不对动态资源进行压缩,但并不限于此。例如,在下面实施方式中,网页处理装置对动态资源进行压缩处理。
在另一可选实施方式中,对静态压缩块和动态资源进行合并处理,获得网页对应的压缩数据,包括:
采用deflate压缩算法,对动态资源进行压缩,获得第二deflate压缩块;
对第二deflate压缩块进行字节边界对齐处理,获得对齐字节边界的动态压缩块;
对静态压缩块和动态压缩块进行拼接处理,获得第二拼接处理结果;
在第二拼接处理结果之后添加第二结束块,以获得压缩数据,第二结束块是第一比特为1而内容为空的deflate非压缩块。
上述第二deflate压缩块实际上就是deflate压缩块,为便于与前面出现的第一deflate压缩块进行区分,这里的deflate压缩块称为第二deflate压缩块。这里的第二既没有个数的限定,也没有先后顺序的限定。
网页处理装置采用deflate压缩算法,对动态资源进行压缩,获得第二deflate压缩块的过程可参见现有技术,在此不再赘述。
网页处理装置对第二deflate压缩块进行字节边界对齐处理,获得对齐字节边界的动态压缩块的过程,可参见网页处理装置对第一deflate压缩块进行字节边界对齐处理,获得对齐字节边界的静态压缩块的过程,在此不再详述。
由于动态压缩块和静态压缩块都是字节边界对齐的,因此网页处理装置对动态压缩块和静态压缩块进行拼接处理过程实际上是两个字符串的拼接过程,该过程也只需消耗较少CPU资源,几乎不会影响网页处理装置的性能。
同理,考虑到网页处理装置无法预先获知静态压缩块和动态压缩块中哪个块属于最后一个块,因此同样可以在第二拼接结果后面添加结束块,用以标识第二拼接结果的结束。这里第二结束块与前述第一结束块的结构相同,且在第二拼接结果后添加第二结束块的过程可参见前述在第一拼接结果后添加第一结束块的过程,不再详述。
在本实施方式中,网页处理装置对动态资源进行压缩,且用静态压缩块替代静态资源,可以极大的压缩网页数据,进一步减少数据传输量;另外,由于网页处理装置可以直接获取预先压缩得到的静态资源块,而不需要像现有技术那样每次都对静态资源进行压缩,因此与现有技术相比,有利于降低网页处理装置的处理负担,降低对网页处理装置的性能的影响。
在一可选实施方式中,上述步骤104,即网页处理装置将压缩数据发送给浏览器的实施方式包括:网页处理装置直接将压缩数据发送给浏览器;或者,网页处理装置可以采用指定的文件格式对压缩数据进行封装,将封装后的压缩数据发送给浏览器。例如,网页处理装置可以采用gzip格式对压缩数据进行封装。基于此,上述步骤104的一种具体实施方式包括:网页处理装置根据gzip格式对压缩数据进行封装,获得gzip文件;将gzip文件发送给浏览器。
在一可选实施方式中,网页处理装置同时采用gzip文件格式和deflate压缩算法。
gzip是一种压缩文件格式,其详细描述请参见RFC1952(可参见https://www.ietf.org/rfc/rfc1952.txt)。简述其格式如图6所示,各字段解释如下:
ID1:一个字节,固定为0x1F
ID2:一个字节,固定为0x8B
CM:压缩算法,一个字节,本实施例采用deflate压缩算法,其对应的CM为0x08
FLG:各种标志位,一个字节,它的取值决定了图6中“其它可选项”部分。本发明实施例不关心这些标志,设置为0x00。即:不设置任何标志,因此图6中的“其它可选项”部分为空。
MTIME:文件最后一次修改的时间戳,四个字节,本实施例设置为0x00,0x00,0x00,0x00,即四个字节全为0,表示不提供时间戳。
XFL:额外的标志位,一个字节,直接设置为0x00,不设置任何标志。
OS:操作系统类型,一个字节,这里设置为0x03,表示unix服务器。
以上字段可称为gzip头部信息。
多个压缩块:这部分的格式由具体的压缩算法决定,对于使用deflate压缩算法来说,这里对应于的是采用deflate压缩算法获得的多个deflate块。
CRC32:原始数据(未压缩前的数据)的CRC32校验和,四个字节。
ISIZE:原始数据的长度除以2^32的余数,四个字节。
基于上述,网页处理装置可以预先准备好固定的gzip头部信息,即0x1F,0x8B,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x03;同时记录下静态资源,用于之后的计算CRC32编码,以及ISIZE;并准备好固定的结束块:0x01,0x00,0x00,0xFF,0xFF。
基于上述准备工作,如图7所示,网页处理装置处理网页的流程包括:
701、接收浏览器发送的请求访问网页的访问请求。
该访问请求携带有请求参数,请求参数具体可由实际应用决定。例如,对于网站内容推荐应用,该请求参数可以包括站点标识(ID)、推荐样式、推荐模板等。
702、根据访问请求,获取网页所需的未经压缩的动态资源和网页所需的静态资源对应的预先压缩的静态压缩块。
703、根据访问请求指定这些静态压缩块和动态资源的拼接顺序。
例如,对于网站内容推荐应用而言,网页所需的静态资源可能包括需要使用的样式、模板和插件等,而网站推荐结果属于网页中的动态资源。例如,以插件为例,有的插件需要放到动态资源前面,有的插件需要放到动态资源后面。
网页处理装置可以根据访问请求中的请求参数来决定需要使用什么样式、什么模板、什么插件,以及需要的推荐结果等;这些内容确定后,也就确定了这些内容之间的拼接顺序。
704、按照指定的拼接顺序将静态压缩块和未压缩的动态资源拼接起来,并在最后拼接结束块,形成压缩数据,实际上是deflate块集合。
其中,采用deflate压缩算法对静态资源进行压缩获得静态压缩块的过程可参见前述实施例的描述,在此不再赘述。
705、根据静态资源和动态资源,计算出在未压缩的情况下的CRC32校验和,以及未压缩情况下的数据长度ISIZE。
706、将预先准备的gzip头部信息、上述deflate块集合、CRC32校验和、以及ISIZE拼接在一起形成最终的gzip文件。
707、将gzip文件返回给浏览器。
在本实施例中,网页处理装置接收浏览器发送的请求访问网页的访问请求,根据访问请求获取该网页所需的动态资源以及该网页所需的静态资源的静态压缩块,之后对静态压缩块和动态资源进行拼接处理,获得该网页对应的压缩数据,并将压缩数据发送给浏览器。本实施例采用静态资源对应的压缩块代替静态资源,而不是采用静态资源,实现对网页的压缩,有利于减少传输的数据量;另外,由于本实施例中的静态资源不随着浏览器的访问请求的变化而变化,这样网页处理装置可以预先对静态资源进行一次压缩生成静态压缩块,在使用时可以直接获取静态压缩块,这与现有技术中针对浏览器的每次请求都对整个网页进行压缩处理的技术方案相比,可以降低网页处理装置的处理负担。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图8为本发明一实施例提供的网页处理装置的结构示意图。如图8所示,该网页处理装置包括:接收模块81、获取模块82、合并处理模块83和发送模块84。
接收模块81,用于接收浏览器发送的请求访问网页的访问请求。
获取模块82,与接收模块81连接,用于根据接收模块81接收的访问请求,获取网页所需的动态资源和网页所需的静态资源对应的静态压缩块。
合并处理模块83,与获取模块82连接,用于对获取模块82获取的静态压缩块和动态资源进行合并处理,获得网页对应的压缩数据。
发送模块84,与合并处理模块83连接,用于将合并处理模块83获得的压缩数据发送给浏览器。
在一可选实施方式中,如图9所示,网页处理装置还包括:压缩模块85和边界对齐处理模块86。
压缩模块85,用于采用deflate压缩算法,对静态资源进行压缩,获得第一deflate压缩块;
边界对齐处理模块86,与压缩模块85连接,用于对压缩模块85获得的第一deflate压缩块进行字节边界对齐处理,获得对齐字节边界的静态压缩块。边界对齐处理模块86与获取模块82连接,用于向获取模块82提供对齐字节边界的静态压缩块。
进一步,边界对齐处理模块具体用于:在第一deflate压缩块之后拼接胶水块,以获得对齐字节边界的静态压缩块,胶水块是内容为空的deflate非压缩块。
更进一步,边界对齐处理模块86进一步具体用于:
若第一deflate压缩块的最后一个字节的剩余比特数大于或等于3,将胶水块的第一个字节的第一至第三比特填充到第一deflate压缩块的最后一个字节中的最后一个有效比特之后的三个比特,并将胶水块中除第一个字节之外的其他字节添加到第一deflate压缩块的最后一个字节之后,以获得对齐字节边界的静态压缩块;
若第一deflate压缩块的最后一个字节的剩余比特数小于3,在第一deflate压缩块的最后一个字节的剩余比特中填充胶水块的第一个字节的第一至第三比特中的比特,并在第一deflate压缩块的最后一个字节后添加用以填充胶水块的第一个字节的第一至第三比特中未被填充到第一deflate压缩块的最后一个字节的比特的一个字节以及胶水块中除第一个字节之外的其他字节,以获得对齐字节边界的静态压缩块。
在一可选实施方式中,如图9所示,合并处理模块83的一种实现结构包括:分割单元831、第一拼接单元832和第一添加单元833。
分割单元831,与获取模块82连接,用于对获取模块82获取的动态资源进行分割处理,以获得动态资源对应的deflate非压缩块。
第一拼接单元832,与获取模块82和分割单元831连接,用于对获取模块82获取的静态压缩块和分割单元831获得的deflate非压缩块进行拼接处理,获得第一拼接处理结果。
第一添加单元833,与第一拼接单元832连接,用于在第一添加单元833获得的第一拼接处理结果之后添加第一结束块,以获得压缩数据,第一结束块是第一比特为1而内容为空的deflate非压缩块。
在另一可选实施方式中,如图9所示,合并处理模块83的另一种实现结构包括:压缩单元834、边界对齐处理单元835、第二拼接单元836和第二添加单元837。
压缩单元834,与获取模块82连接,用于采用deflate压缩算法,对获取模块82获取的动态资源进行压缩,获得第二deflate压缩块。
边界对齐处理单元835,与压缩单元834连接,用于对压缩单元834获得的第二deflate压缩块进行字节边界对齐处理,获得对齐字节边界的动态压缩块。
第二拼接单元836,与获取模块82和边界对齐处理单元835连接,用于对获取模块82获取的静态压缩块和边界对齐处理单元835获得的动态压缩块进行拼接处理,获得第二拼接处理结果。
第二添加单元837,与第二拼接单元836连接,用于在第二拼接单元836获得的第二拼接处理结果之后添加第二结束块,以获得压缩数据,第二结束块是第一比特为1而内容为空的deflate非压缩块。
在另一可选实施方式中,如图9所示,网页处理装置还包括:封装模块87,与第一添加单元833或第二添加单元837连接,用于根据gzip格式对压缩数据进行封装,获得gzip文件。相应的,发送模块84具体可用于将gzip文件发送给浏览器。
本实施例提供的网页处理装置可以是具有压缩功能且可以提供网页的服务器,但不限于此。
本实施例提供的网页处理装置,接收浏览器发送的请求访问网页的访问请求,根据访问请求获取该网页所需的动态资源以及该网页所需的静态资源的静态压缩块,之后对静态压缩块和动态资源进行合并处理,获得该网页对应的压缩数据,并将压缩数据发送给浏览器。本实施例提供的网页处理装置采用静态资源对应的压缩块代替静态资源,而不是采用静态资源,实现对网页的压缩,有利于减少传输的数据量;另外,由于本实施例提供的网页处理装置考虑到静态资源不随着浏览器的访问请求的变化而变化,因此预先对静态资源进行一次压缩生成静态压缩块,而在使用时可以直接获取静态压缩块,这与现有技术中针对浏览器的每次请求都对整个网页进行压缩处理的技术方案相比,本实施例提供的网页处理装置的处理负担较低。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (14)

1.一种网页处理方法,其特征在于,包括:
接收浏览器发送的请求访问网页的访问请求;
根据所述访问请求,获取所述网页所需的动态资源和所述网页所需的静态资源对应的静态压缩块;
对所述静态压缩块和所述动态资源进行合并处理,获得所述网页对应的压缩数据;
将所述压缩数据发送给所述浏览器。
2.根据权利要求1所述的方法,其特征在于,所述根据所述访问请求,获取所述网页所需的动态资源和所述网页所需的静态资源对应的静态压缩块之前,还包括:
采用deflate压缩算法,对所述静态资源进行压缩,获得第一deflate压缩块;
对所述第一deflate压缩块进行字节边界对齐处理,获得对齐字节边界的所述静态压缩块。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一deflate压缩块进行字节边界对齐处理,获得对齐字节边界的所述静态压缩块,包括:
在所述第一deflate压缩块之后拼接胶水块,以获得对齐字节边界的所述静态压缩块,所述胶水块是内容为空的的deflate非压缩块。
4.根据权利要求3所述的方法,其特征在于,所述在所述第一deflate压缩块之后拼接胶水块,以获得对齐字节边界的所述静态压缩块,包括:
若所述第一deflate压缩块的最后一个字节的剩余比特数大于或等于3,将所述胶水块的第一个字节的第一至第三比特填充到所述第一deflate压缩块的最后一个字节中的最后一个有效比特之后的三个比特,并将所述胶水块中除第一个字节之外的其他字节添加到所述第一deflate压缩块的最后一个字节之后,以获得对齐字节边界的所述静态压缩块;
若所述第一deflate压缩块的最后一个字节的剩余比特数小于3,在所述第一deflate压缩块的最后一个字节的剩余比特中填充所述胶水块的第一个字节的第一至第三比特中的比特,并在所述第一deflate压缩块的最后一个字节后添加用以填充所述胶水块的第一个字节的第一至第三比特中未被填充到所述第一deflate压缩块的最后一个字节的比特的一个字节以及所述胶水块中除第一个字节之外的其他字节,以获得对齐字节边界的所述静态压缩块。
5.根据权利要求2或3或4所述的方法,其特征在于,所述对所述静态压缩块和所述动态资源进行合并处理,获得所述网页对应的压缩数据,包括:
对所述动态资源进行分割处理,以获得所述动态资源对应的deflate非压缩块;
对所述静态压缩块和所述deflate非压缩块进行拼接处理,获得第一拼接处理结果;
在所述第一拼接处理结果之后添加第一结束块,以获得所述压缩数据,所述第一结束块是第一比特为1而内容为空的deflate非压缩块。
6.根据权利要求2或3或4所述的方法,其特征在于,所述对所述静态压缩块和所述动态资源进行合并处理,获得所述网页对应的压缩数据,包括:
采用deflate压缩算法,对所述动态资源进行压缩,获得第二deflate压缩块;
对所述第二deflate压缩块进行字节边界对齐处理,获得对齐字节边界的动态压缩块;
对所述静态压缩块和所述动态压缩块进行拼接处理,获得第二拼接处理结果;
在所述第二拼接处理结果之后添加第二结束块,以获得所述压缩数据,所述第二结束块是第一比特为1而内容为空的deflate非压缩块。
7.根据权利要求1-4任一项所述的方法,其特征在于,所述将所述压缩数据发送给所述浏览器,包括:
根据gzip格式对所述压缩数据进行封装,获得gzip文件;
将所述gzip文件发送给所述浏览器。
8.一种网页处理装置,其特征在于,包括:
接收模块,用于接收浏览器发送的请求访问网页的访问请求;
获取模块,用于根据所述访问请求,获取所述网页所需的动态资源和所述网页所需的静态资源对应的静态压缩块;
合并处理模块,用于对所述静态压缩块和所述动态资源进行合并处理,获得所述网页对应的压缩数据;
发送模块,用于将所述压缩数据发送给所述浏览器。
9.根据权利要求8所述的装置,其特征在于,还包括:
压缩模块,用于采用deflate压缩算法,对所述静态资源进行压缩,获得第一deflate压缩块;
边界对齐处理模块,用于对所述第一deflate压缩块进行字节边界对齐处理,获得对齐字节边界的所述静态压缩块。
10.根据权利要求9所述的装置,其特征在于,所述边界对齐处理模块具体用于:
在所述第一deflate压缩块之后拼接胶水块,以获得对齐字节边界的所述静态压缩块,所述胶水块是内容为空的deflate非压缩块。
11.根据权利要求10所述的装置,其特征在于,所述边界对齐处理模块进一步具体用于:
若所述第一deflate压缩块的最后一个字节的剩余比特数大于或等于3,将所述胶水块的第一个字节的第一至第三比特填充到所述第一deflate压缩块的最后一个字节中的最后一个有效比特之后的三个比特,并将所述胶水块中除第一个字节之外的其他字节添加到所述第一deflate压缩块的最后一个字节之后,以获得对齐字节边界的所述静态压缩块;
若所述第一deflate压缩块的最后一个字节的剩余比特数小于3,在所述第一deflate压缩块的最后一个字节的剩余比特中填充所述胶水块的第一个字节的第一至第三比特中的比特,并在所述第一deflate压缩块的最后一个字节后添加用以填充所述胶水块的第一个字节的第一至第三比特中未被填充到所述第一deflate压缩块的最后一个字节的比特的一个字节以及所述胶水块中除第一个字节之外的其他字节,以获得对齐字节边界的所述静态压缩块。
12.根据权利要求9或10或11所述的装置,其特征在于,所述合并处理模块包括:
分割单元,用于对所述动态资源进行分割处理,以获得所述动态资源对应的deflate非压缩块;
第一拼接单元,用于对所述静态压缩块和所述deflate非压缩块进行拼接处理,获得第一拼接处理结果;
第一添加单元,用于在所述第一拼接处理结果之后添加第一结束块,以获得所述压缩数据,所述第一结束块是第一比特为1而内容为空的deflate非压缩块。
13.根据权利要求9或10或11所述的装置,其特征在于,所述合并处理模块包括:
压缩单元,用于采用deflate压缩算法,对所述动态资源进行压缩,获得第二deflate压缩块;
边界对齐处理单元,用于对所述第二deflate压缩块进行字节边界对齐处理,获得对齐字节边界的动态压缩块;
第二拼接单元,用于对所述静态压缩块和所述动态压缩块进行拼接处理,获得第二拼接处理结果;
第二添加单元,用于在所述第二拼接处理结果之后添加第二结束块,以获得所述压缩数据,所述第二结束块是第一比特为1而内容为空的deflate非压缩块。
14.根据权利要求8-11任一项所述的装置,其特征在于,还包括:
封装模块,用于根据gzip格式对所述压缩数据进行封装,获得gzip文件;
所述发送模块具体用于将所述gzip文件发送给所述浏览器。
CN201410466289.6A 2014-09-12 2014-09-12 网页处理方法及装置 Active CN104199951B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410466289.6A CN104199951B (zh) 2014-09-12 2014-09-12 网页处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410466289.6A CN104199951B (zh) 2014-09-12 2014-09-12 网页处理方法及装置

Publications (2)

Publication Number Publication Date
CN104199951A true CN104199951A (zh) 2014-12-10
CN104199951B CN104199951B (zh) 2018-09-04

Family

ID=52085244

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410466289.6A Active CN104199951B (zh) 2014-09-12 2014-09-12 网页处理方法及装置

Country Status (1)

Country Link
CN (1) CN104199951B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105761296A (zh) * 2016-01-15 2016-07-13 网易(杭州)网络有限公司 一种压缩纹理的拼装系统及方法、终端
CN106790687A (zh) * 2017-02-17 2017-05-31 和创(北京)科技股份有限公司 网页呈现方法、网页数据处理方法和服务器
CN106933965A (zh) * 2017-02-08 2017-07-07 福建省华渔教育科技有限公司 静态资源请求的方法
CN107911459A (zh) * 2017-11-21 2018-04-13 桂林爱家购股份有限公司 一种web页存储装置
CN109254804A (zh) * 2018-09-10 2019-01-22 郑州云海信息技术有限公司 一种静态资源加载方法、装置、设备及可读存储介质
CN109324858A (zh) * 2018-09-20 2019-02-12 郑州云海信息技术有限公司 网页中显示内容的获取方法和装置
CN110505258A (zh) * 2018-05-17 2019-11-26 腾讯科技(深圳)有限公司 网页加载及响应方法、装置、计算机设备和存储介质
CN110709838A (zh) * 2017-12-13 2020-01-17 谷歌有限责任公司 用于更新用缓存内容渲染的网页的方法、系统和介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149793A1 (en) * 2002-02-01 2003-08-07 Daniel Bannoura System and method for partial data compression and data transfer
US7343435B2 (en) * 2003-11-10 2008-03-11 Digital Networks North America, Inc. Stream based compressed file download with interruption recovery
CN102129872A (zh) * 2010-01-14 2011-07-20 珠海扬智电子有限公司 资料压缩、解压缩方法及其装置
CN102375884A (zh) * 2011-10-21 2012-03-14 北京百度网讯科技有限公司 一种用于对页面访问对象进行数据压缩的方法及设备
CN102469306A (zh) * 2010-10-29 2012-05-23 华晶科技股份有限公司 图像压缩的方法
CN103210590A (zh) * 2012-08-21 2013-07-17 华为技术有限公司 压缩方法及设备
CN103218395A (zh) * 2013-03-04 2013-07-24 星云融创(北京)信息技术有限公司 页面压缩方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030149793A1 (en) * 2002-02-01 2003-08-07 Daniel Bannoura System and method for partial data compression and data transfer
US7343435B2 (en) * 2003-11-10 2008-03-11 Digital Networks North America, Inc. Stream based compressed file download with interruption recovery
CN102129872A (zh) * 2010-01-14 2011-07-20 珠海扬智电子有限公司 资料压缩、解压缩方法及其装置
CN102469306A (zh) * 2010-10-29 2012-05-23 华晶科技股份有限公司 图像压缩的方法
CN102375884A (zh) * 2011-10-21 2012-03-14 北京百度网讯科技有限公司 一种用于对页面访问对象进行数据压缩的方法及设备
CN103210590A (zh) * 2012-08-21 2013-07-17 华为技术有限公司 压缩方法及设备
CN103218395A (zh) * 2013-03-04 2013-07-24 星云融创(北京)信息技术有限公司 页面压缩方法和系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105761296A (zh) * 2016-01-15 2016-07-13 网易(杭州)网络有限公司 一种压缩纹理的拼装系统及方法、终端
CN105761296B (zh) * 2016-01-15 2018-09-18 网易(杭州)网络有限公司 一种压缩纹理的拼装系统及方法、终端
CN106933965A (zh) * 2017-02-08 2017-07-07 福建省华渔教育科技有限公司 静态资源请求的方法
CN106790687A (zh) * 2017-02-17 2017-05-31 和创(北京)科技股份有限公司 网页呈现方法、网页数据处理方法和服务器
CN107911459A (zh) * 2017-11-21 2018-04-13 桂林爱家购股份有限公司 一种web页存储装置
CN110709838A (zh) * 2017-12-13 2020-01-17 谷歌有限责任公司 用于更新用缓存内容渲染的网页的方法、系统和介质
CN110709838B (zh) * 2017-12-13 2023-09-29 谷歌有限责任公司 用于更新用缓存内容渲染的网页的方法、系统和介质
CN110505258A (zh) * 2018-05-17 2019-11-26 腾讯科技(深圳)有限公司 网页加载及响应方法、装置、计算机设备和存储介质
CN110505258B (zh) * 2018-05-17 2021-12-14 腾讯科技(深圳)有限公司 网页加载及响应方法、装置、计算机设备和存储介质
CN109254804A (zh) * 2018-09-10 2019-01-22 郑州云海信息技术有限公司 一种静态资源加载方法、装置、设备及可读存储介质
CN109324858A (zh) * 2018-09-20 2019-02-12 郑州云海信息技术有限公司 网页中显示内容的获取方法和装置

Also Published As

Publication number Publication date
CN104199951B (zh) 2018-09-04

Similar Documents

Publication Publication Date Title
CN104199951A (zh) 网页处理方法及装置
US11146286B2 (en) Compression of JavaScript object notation data using structure information
CN101273329B (zh) 有效描述资源之间的关系
TWI670611B (zh) 網頁文件發送方法、網頁渲染方法及裝置、網頁渲染系統
US20100050089A1 (en) Web browser system of mobile communication terminal, using proxy server
CN104753540B (zh) 数据压缩方法、数据解压方法和装置
CN104020961B (zh) 分布式数据存储方法、装置及系统
CN111683066B (zh) 异构系统集成方法、装置、计算机设备和存储介质
US9639460B1 (en) Efficient string formatting
CN105898396A (zh) 第三方视频推送方法和系统
CN102375884A (zh) 一种用于对页面访问对象进行数据压缩的方法及设备
CN105550179A (zh) 一种网页收藏方法和浏览器插件
CN105022619A (zh) 一种代码数据处理方法及装置
CA2912352A1 (en) Method and apparatus for storing network data
WO2016146009A1 (zh) Html页面压缩方法及装置
WO2013097812A1 (zh) 一种下载字库文件的方法和系统
CN106570153A (zh) 一种海量url的数据提取方法及系统
CN106326403A (zh) 网页生成方法及装置
US10437849B2 (en) Method and apparatus for implementing storage of file in IP disk
CN117040539B (zh) 一种基于m叉树和lzw算法的石油测井数据压缩方法及装置
CN112822265A (zh) 数据编码方法、装置、设备端及存储介质
CN103984752A (zh) 一种动漫资源检索管理系统
CN104516764B (zh) 压缩文件动态打包方法及系统
CN105094787A (zh) 企业互联网应用的处理方法及装置
CN104517062A (zh) 一种基于文档对象模型的分权限文档管理的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant