Detailed Description
In order to more clearly illustrate the technical solution of one or more embodiments of the present invention, the drawings used in the description of the embodiments will be briefly described below. It is obvious that the drawings in the following description are only examples or embodiments of the present description, and that for a person skilled in the art, one or more embodiments of the present description can also be applied to other similar scenarios according to these drawings without inventive effort. Unless otherwise apparent from the context, or otherwise indicated, like reference numbers in the figures refer to the same structure or operation.
It should be understood that "system", "device", "unit" and/or "module" as used herein is a method for distinguishing different components, elements, parts, portions or assemblies at different levels. However, other words may be substituted by other expressions if they accomplish the same purpose.
As used in one or more embodiments of the present specification and in the claims, the terms "a," "an," and/or "the" are not intended to be inclusive of the plural form as long as the context clearly indicates the exception. In general, the terms "comprises" and "comprising" merely indicate that steps and elements are included which are explicitly identified, that the steps and elements do not form an exclusive list, and that a method or apparatus may include other steps or elements. The term "local" may be understood as an executing device or other device having data interaction with an executing device for the steps of a method shown in one or more embodiments of the present specification, or may be understood as a storage device for a computer program implementing a method described in one or more embodiments of the present specification or other device having data interaction with a storage device.
In one or more embodiments of the present description, flowcharts are used to illustrate operations performed by an apparatus according to one or more embodiments of the present description. It should be understood that the preceding or following operations are not necessarily performed in the exact order in which they are performed. Rather, the various steps may be processed in reverse order or simultaneously. Meanwhile, other operations may be added to the processes, or a certain step or several steps of operations may be removed from the processes.
One or more embodiments of the present disclosure may be applied to different data downloading devices, for example, a browser of a mobile terminal, an application program of a mobile terminal, and the like. The data download request, the picture download request, and the like described in one or more embodiments of the present specification are interchangeable, and refer to content that requires or requests a download service.
Fig. 1 is a schematic diagram of an application scenario of a data download system 100 according to some embodiments of the present description. The data download system 100 may be a platform for various types of internet-based services. Such as online shopping, financial services, insurance services, loan services, money and money transfer services, and the like. In some embodiments, the data download system 100 may implement a data transfer or download service. Such as audio data downloads, picture downloads, video downloads, and the like. The data download system 100 can accommodate different data compression formats to accommodate different data formats between different devices (e.g., between a server and a client); the size of network data resources is also reduced by encoding and compressing the data to save traffic. As shown in FIG. 1, the data download system 100 may include a server 110, a storage device 120, one or more terminals 130, and a network 140.
In some embodiments, server 110 may process data and/or information obtained from terminals 130, storage devices 120. For example, server 110 may access information and/or data stored in storage device 120, terminal 130 via network 140. As another example, the server 110 may be directly connected to the terminal 130 and the storage device 120 to access information and/or material stored therein. Specifically, the server 110 may receive a data request from the terminal 130, obtain corresponding data according to the data request, and return the data to the terminal 130. In some embodiments, the server 110 may retrieve corresponding data from a local, other server, or storage device 120 for return to the terminal 130.
In some embodiments, the server 110 may be local or remote. In some embodiments, the server 110 may be a stand-alone server or a group of servers. When the server 110 is a server group, the server 110 may include more than one server, and these servers may work together with each other to backup or manage different functions. For example, as shown in FIG. 1, the server 110 may include a content distribution server 110-1 and a domain name resolution server 110-2, and the like. In some embodiments, content distribution server 110-1 may process data and/or information related to the service request to perform one or more of the functions described herein. For example, the content distribution server 110-1 may receive a data download request including a proxy URL, and obtain data specified in the data download request based on the resolution result of the proxy URL, and return the specified data. For another example, the content distribution server 110-1 may store the processed data. For another example, the content distribution server 110-1 may also determine whether the requested data is stored locally, and if so, return the data directly. Domain name resolution server 110-2 may process data and/or information related to the service request to perform one or more of the functions described herein. For example, the domain name resolution server 110-2 may have a signal connection with the content distribution server for resolving the proxy URL according to a uniform resolution rule, obtaining the original URL of the data and the data processing requirements. As another example, the domain name resolution server 110-2 may retrieve the raw data for the data based on the raw URL. In some embodiments, the server farm may be centralized or distributed (e.g., server 110 may be a distributed system).
In some embodiments, the server 110 may be implemented on a cloud platform. For example only, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, between clouds, multiple clouds, the like, or any combination thereof.
In some embodiments, server 110 may include one or more sub-processing devices (e.g., single-core processors or multi-core processors). By way of example only, the server 110 may include a Central Processing Unit (CPU), an Application Specific Integrated Circuit (ASIC), an Application Specific Instruction Processor (ASIP), a Graphics Processing Unit (GPU), a Physical Processing Unit (PPU), a Digital Signal Processor (DSP), a Field Programmable Gate Array (FPGA), a programmable logic circuit (PLD), a controller, a micro-controller unit, a Reduced Instruction Set Computer (RISC), a microprocessor, or the like, or any combination thereof.
Storage device 120 may store data and/or instructions. In some embodiments, storage device 120 may store data/information (e.g., pictures) requested by terminal 130. The storage device 120 may also store processed data, such as processed pictures, processed videos, and the like. In some embodiments, storage device 120 may store data and/or instructions for execution or use by server 110 to perform the exemplary methods described in this application. For example, the storage device 120 may store rules for resolving proxy URLs. In some embodiments, the storage device 120 may be part of the server 110 or the terminal 130. In some embodiments, storage device 120 may include mass storage, removable storage, volatile read-write memory, read-only memory (ROM), and the like, or any combination thereof. Exemplary mass storage devices may include magnetic disks, optical disks, solid state disks, and the like. Exemplary removable memory may include flash drives, floppy disks, optical disks, memory cards, compact disks, magnetic tape, and the like. Exemplary volatile read-only memory can include Random Access Memory (RAM). Exemplary RAM may include Dynamic RAM (DRAM), double-data-rate synchronous dynamic RAM (DDR SDRAM), Static RAM (SRAM), thyristor RAM (T-RAM), zero-capacitance RAM (Z-RAM), and the like. Exemplary ROMs may include Mask ROM (MROM), Programmable ROM (PROM), Erasable Programmable ROM (EPROM), Electrically Erasable Programmable ROM (EEPROM), compact disk ROM (CD-ROM), digital versatile disk ROM, and the like. In some embodiments, storage device 120 may be implemented on a cloud platform. By way of example only, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an internal cloud, a multi-tiered cloud, and the like, or any combination thereof. For example, in the present application, some algorithms or data for data downloading may be stored on a certain cloud platform, and updated periodically, and the server 110 accesses these algorithms or data through a network, so as to implement uniform and interactive algorithms or data of the whole platform. In particular, some historical data may be uniformly stored on one cloud platform of the platform, so that a plurality of servers 110 or terminals 130 can access or update the historical data, and real-time performance and cross-platform use of the data are guaranteed.
In some embodiments, the storage device 120 may be connected to a network 140 to communicate with one or more components (e.g., server 110, terminal 130) in the data download system 100. One or more components in the data download system 100 may access data or instructions stored in the storage device 120 through the network 140. In some embodiments, the storage device 120 may be directly connected or in communication with one or more components (e.g., server 110, terminal 130) in the data download system 100. In some embodiments, storage device 120 may be part of server 110.
In some embodiments, terminal 130 may be a device with data acquisition, storage, and/or transmission capabilities. In some embodiments, terminal 130 may receive one or more inputs from a user to obtain a user request for data. In some embodiments, the terminal 130 may process the data request, generate a proxy URL, and send the data request to one or more servers via the proxy URL. In some embodiments, the terminal 130 may be used to obtain various types of data, including but not limited to data returned by the server based on the data request. For example, the data acquired by the terminal 130 may include instant messaging data, text, pictures, video, sound, and the like.
In some embodiments, the terminal 130 may include, but is not limited to, a mobile device 130-1, a tablet 130-2, a laptop 130-3, a desktop 130-4, and the like, or any combination thereof. In some embodiments, mobile device 130-1 may include, but is not limited to, smart home devices, wearable devices, smart mobile devices, augmented reality devices, and the like, or any combination thereof in some embodiments, wearable devices may include smart bracelets, smart footwear, smart glasses, smart helmets, smart watches, smart clothing, smart backpacks, smart accessories, and the like, or any combination thereof. In some embodiments, the smart mobile device may include a smartphone, a Personal Digital Assistant (PDA), a gaming device, a navigation device, a POS machine, or the like, or any combination thereof. In some embodiments, the terminal 130 may also receive and/or display data returned or processed by the server 110. In some embodiments, multiple terminals may be interconnected to receive and/or display various types of data together, and one or more terminals may preprocess the data.
Network 140 may facilitate the exchange of information and/or data. In some embodiments, one or more components in the data download system 100 (e.g., the server 110, the storage device 120, and the terminal 130) may send and/or receive information and/or data to/from other components in the data download system 100 via the network 140. For example, the server 110 may obtain data/information related to the data request from the terminal 130 through the network 140. As another example, terminal 130 may obtain data from server 110 or storage device 120 via network 140. As another example, server 110 may obtain data from storage device 120 or other servers via a network. In some embodiments, the network 140 may be any form or combination of wired or wireless network. By way of example only, network 140 may include a cable network, a wireline network, a fiber optic network, a telecommunications network, an intranet, the Internet, a Local Area Network (LAN), a Wide Area Network (WAN), a Wireless Local Area Network (WLAN), a Metropolitan Area Network (MAN), a Wide Area Network (WAN), a Public Switched Telephone Network (PSTN), a Bluetooth network, a ZigBee network, a Near Field Communication (NFC) network, a Global System for Mobile communications (GSM) network, a Code Division Multiple Access (CDMA) network, a Time Division Multiple Access (TDMA) network, a General Packet Radio Service (GPRS) network, an enhanced data rates for GSM evolution (EDGE) network, a Wideband Code Division Multiple Access (WCDMA) network, a High Speed Downlink Packet Access (HSDPA) network, a Long Term Evolution (LTE) network, a User Datagram Protocol (UDP) network, a Transmission control protocol/Internet protocol (TCP/IP) network, a Short Message Service (SMS) network, a Bluetooth network, a communication network, a wireless communication system, a method of operating system, a wireless communication system, a method of operating a wireless communication system, a method of operating a wireless communication system, a method of operating a wireless communication system, a method of operating system, a wireless communication system, a method of operating a wireless communication system, a method of a wireless communication system, a method of operating a method of operating system, a wireless communication system, a method of a wireless communication system, a method of operating a wireless communication system, and a wireless communication system, a method of a wireless communication system, a method of operating system, a method of operating system, a method of a wireless, A Wireless Application Protocol (WAP) network, an ultra-wideband (UWB) network, a mobile communication (1G, 2G, 3G, 4G, 5G) network, Wi-Fi, Li-Fi, narrowband Internet of things (NB-IoT), and the like, or any combination thereof. In some embodiments, the data download system 100 may include one or more network access points. For example, the data download system 100 may include wired or wireless network access points, such as base stations and/or wireless access points 140-1, 140-2, through which one or more components of the data download system 100 may connect to the network 140 to exchange data and/or information.
Fig. 2 is a block diagram of a data download device 200, shown in accordance with some embodiments of the present description. As shown in fig. 2, the data downloading apparatus 200 may include a first obtaining module 202, a determining module 204, an address processing module 206, and a transmitting module 208.
The first retrieving module 202 may be used to retrieve a request for data.
Further description of obtaining a request for data may be found elsewhere in this application (e.g., in step 302 and its associated description), and will not be repeated herein.
The determination module 204 may be configured to determine an original URL of the data based on the request for data.
In some embodiments, the original URL of the data may be the original storage address of the data. Further description of determining the original URL of the data may be found elsewhere in this application (e.g., in step 304 and its associated description), and will not be repeated herein.
The address processing module 206 may be configured to determine whether the domain name in the original URL includes a specified domain name.
In some embodiments, in response to the domain name in the original URL not including the specified domain name, the URL processing module 206 may encode the original URL to obtain a source address parameter; a proxy URL for the data may also be generated, where the proxy URL includes a specified domain name and the source address parameter. In some embodiments, the request for data further includes data processing requirements. In some embodiments, the URL processing module 206 may process the data processing requirement based on preset rules to generate processing parameters. In some embodiments, in response to the domain name in the original URL not including the specified domain name, URL processing module 206 may also generate a proxy URL for the data, where the specified domain name, the source address parameter, and the processing parameter are included in the proxy URL. In some embodiments, in response to the domain name in the original URL including the specified domain name, URL processing module 206 may also add processing parameters to the original URL to generate a proxy URL for the data; or replacing the original processing parameters in the original URL with the processing parameters to generate the proxy URL of the data. Further description of whether the domain name in the original URL includes the specified domain name may be found elsewhere in this application (e.g., in step 306 and its associated description), and will not be described herein.
The sending module 208 may be configured to send a data download request according to the proxy URL.
Further description of sending a data download request according to the proxy URL may be found elsewhere in this application (e.g., in step 308 and its associated description), and will not be repeated herein.
In some embodiments, the data downloading device 200 may further include a first receiving module 210, and the first receiving module 210 may be configured to receive data returned by the server.
Further description of the data returned by the receiving server may be found elsewhere in this application (e.g., in step 310 and its associated description), and will not be described herein.
In some embodiments, the data downloading device 200 may further include a presentation module 212, and the presentation module 212 may be used to present the data returned by the server.
More details about the data returned by the presentation server can be found elsewhere in this application (e.g., in step 312 and its related description), and are not described herein.
It should be understood that the apparatus shown in fig. 2 and its modules may be implemented in various ways. For example, in some embodiments, an apparatus and its modules may be implemented by hardware, software, or a combination of software and hardware. Wherein the hardware portion may be implemented using dedicated logic; the software portions may then be stored in a memory for execution by a suitable instruction execution device, such as a microprocessor or specially designed hardware. Those skilled in the art will appreciate that the methods and apparatus described above may be implemented using computer executable instructions and/or embodied in processor control code, such code being provided for example on a carrier medium such as a diskette, CD-or DVD-ROM, a programmable memory such as read-only memory (firmware) or a data carrier such as an optical or electronic signal carrier. Apparatuses and modules according to one or more embodiments of the present specification may be implemented not only by hardware circuits such as very large scale integrated circuits or gate arrays, semiconductors such as logic chips, transistors, or programmable hardware devices such as field programmable gate arrays, programmable logic devices, or the like, but also by software executed by various types of processors, for example, or by a combination of the above hardware circuits and software (e.g., firmware).
It should be noted that the above description of the data downloading device and the modules thereof is only for convenience of description, and the description should not be limited to the scope of the illustrated embodiments. It will be appreciated by those skilled in the art that, having the benefit of the teachings of this apparatus, any combination of the various modules or sub-apparatus may be configured to connect to other modules without departing from such teachings. For example, the first receiving module 210 and the presenting module 212 may be the same module, and the first receiving module 210 may be configured to receive data returned by the server and present the data. Such variations are within the scope of the present disclosure.
The foregoing description has been directed to specific embodiments of this disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
Fig. 3 is an exemplary flow diagram of a data download method 300, shown in accordance with some embodiments of the present description. In some embodiments, flow 300 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (instructions run on a processing device to perform hardware simulation), etc., or any combination thereof. One or more of the operations for the data download method 300 shown in fig. 3 may be implemented by the data download system 100 shown in fig. 1. For example, the process 300 may be stored in the storage device 120 in the form of instructions and executed and/or invoked by the terminal 130. In some embodiments, one or more of the operations illustrated in FIG. 3 may also be implemented by other servers (not shown in FIG. 1) on the network.
Step 302, a request for data is obtained. Specifically, this step 302 may be performed by the first obtaining module 202.
In some embodiments, the data may include sounds, pictures, text, or symbols. In some embodiments, one or more input actions by the user may be obtained, which actions may reflect the user's request for data and the content the request contains. The request for data may include an access directory, a file name, a storage address, and/or data processing requirements for the requested data, among others. In some embodiments, a user may initiate a request for data (e.g., view or download data) through an application on terminal 130. In some embodiments, the application program may present preview icons of some pictures, and the user may trigger a request for the pictures by clicking the preview icon of the corresponding picture, or the user may trigger a request for the data by clicking a play control of a piece of video or a piece of audio, or the user may trigger a request for the data by clicking a link address of music, a picture, or a video, or the user may directly click a download control of the data to trigger a request for the data. In some embodiments, the user may also directly enter a request for data and the content it contains.
In some embodiments, one or more input operations by a user may be processed to determine a request for data and the content it includes.
In some embodiments, the request for data may include a storage address for the data. The storage address of the data is intended to point to the device storing the requested data, which may be a network address, a logical address, a bus address, etc. of the device. The device may be remote or local. Specifically, the device may be a server, a user terminal, or some storage device. The storage address may be identified by a domain name, may be represented by an IP address, or may be an explicit data address, such as a URL. The present application mainly describes the storage address of the data as a URL, but the URL should not be taken as a limitation of the storage address of the data in the present application.
In some embodiments, the request for data may also include data processing requirements. In some embodiments, the data may comprise a picture and the data processing requirements may comprise one or more of picture quality, picture style, picture size, and picture codec format. In some embodiments, the picture quality may include parameter requirements of resolution, signal-to-noise ratio, contrast, gray value, etc. of the picture. In some embodiments, the picture style may include parameter requirements for the picture, such as filter effect, orientation, or angle. In some embodiments, the picture size may include a specified picture width or picture height. For example, width (w)100px, height (h)100 px. In some embodiments, the picture codec format may include HEIF, WebP, JPG, JPEG, TIFF, PNG, DNG, BMP, GIF, PSD, DXF, RAW, or the like. In some embodiments, the data processing requirements may include two or more picture codec formats. It should be noted that, in some embodiments, the picture coding and decoding format may indicate both the coding rule and the decoding rule. In some embodiments, the coding format of a picture may also indicate only coding rules or decoding rules. In some embodiments, the meaning of the codec format may be different for different execution subjects, for example, for the end that implements data compression encoding, such as a server end, which may determine the compression encoding rules of the picture from the codec format, and for the end that implements data decoding, such as a terminal, which may determine the decoding rules of the picture from the picture codec format. In some embodiments, two or more picture codec formats may have different priorities. In some embodiments, the terminal 130 may support multiple picture coding formats, e.g., the terminal may support decoding of multiple picture coding formats. The terminal may include a plurality of picture codec formats supported by the terminal in the data processing requirement so that the server 110 selects a codec format supported by the terminal 130 to encode or compress the picture. In some embodiments, the terminal may note the priorities of the different codec formats in the data processing requirements so that the server 110 (e.g., the content distribution server 110-1) may encode the picture with the priority of the codec format. For example, the data processing requirement sent by the terminal 130 includes three picture coding and decoding formats of HEIF, WebP, and JPG, and the priority of the picture coding and decoding formats of HEIF, WebP, and JPG may be the highest HEIF, the second WebP, and the lowest JPG; the server 110 (e.g., the content distribution server 110-1) encodes the picture in the HEIF format first when encoding and decoding the picture according to the data processing requirement of the terminal 130, and encodes the picture again using the WebP format if the encoding fails; if the encoding fails, the JPG format is continuously used for encoding the picture, and if the encoding succeeds, the encoding operation is completed. In some embodiments, if the server 110 cannot encode pictures in all the codec formats required by the terminal 130, the server 110 may return pictures to the terminal 130 that are not encoded or compressed. In some embodiments, the manner of codec may include Base64 encoding, Base32 encoding, XXencode encoding, uuencod encoding, and so forth. The above description of data processing requirements is by way of example only, and the invention is not limited in any way to the particular content or form of the data processing requirements.
At step 304, the original URL of the data is determined based on the request for the data. In particular, this step 304 may be performed by the determination module 204.
The original URL may be understood as a URL of data determined directly based on a request for data. In this application, the original URL is referred to some extent to distinguish it from subsequent proxy URLs. When the original URL meets the set requirement, the original URL can be directly used as a proxy URL; when the original URL does not meet the set requirement, for example, the domain name included in the original URL is not the designated domain name, and for example, the processing parameter included in the original URL is not encoded according to the preset rule, one or more parameters in the original URL need to be changed to obtain the proxy URL corresponding to the original URL.
In some embodiments, the request for data may include a storage address for the data. The storage address may be identified by a domain name, an IP address, or an explicit data address, such as a URL. In some embodiments, the URL may include a protocol portion, a domain name portion, a port portion, a virtual directory portion, a file name portion, an anchor portion, and a parameters portion. Wherein, the protocol part and the domain name part are necessary, and the rest can be in default. The following describes the components of a specific URL as an example:
http://www.domain.com:8080/news/objectboardID=5&ID=24618&page=1#name。
the protocol portion may include, among other things, the HTTP protocol used by the web page. For example, "http: ". The domain name portion may be "www.aspxfans.com". In some alternative embodiments, the domain name portion may also use an IP address. The port part may be the content behind the domain name, used between the domain name and the port ": "as a separator. For example, the port section is "8080". The port portion may be omitted. If the port portion is omitted, a default port will be used. The virtual directory portion may be the contents from the first "/" after the domain name to the last "/". For example, the virtual directory is "/news/". The filename portion may be from the last "/" after the domain name to "? "so far. For example, the file name is "index. If the filename part is omitted, the default filename is used. The anchor portion may be content starting with "#" to the end of the URL. For example, the anchor portion is "name". The parameter part may be from "? The parameter part is also called search part and inquiry part. For example, the parameter portion is "boardID ═ 5& ID ═ 24618& page ═ 1". The parameter may allow for multiple parameters with "&" as a delimiter between parameters.
When the deposit address is identified by a domain name or IP address, the original URL may be determined based on the domain name or IP address, in which case the original URL may include only a protocol portion and a domain name portion. For example, if the storage address of the requested data is identified by the domain name www.userdomain.com, then the original URL may be determined to be http:// www.userdomain.com. In some embodiments, the request for data may further include information such as a file name and a data processing requirement, and these parameters may be spliced together with the storage address, the file name and the data processing requirement according to a URL composition rule to obtain an original URL. For example only, if the current request for data includes a data storage address of www.integrate.com, a file name of object1, and a data processing requirement is that a gif map with 50 width and 80 height is required, the original URL can be generated according to the above information: http:// www.integrate.com/object1#50w _80h.
When the data request indicates the storage address of the data by the URL, the URL may be directly determined as the original URL. In some embodiments, the URL also carries a file name and/or a data processing requirement. For example, http:// www.userdomain.com/object2#100 x 100&90Q & jpg. Where object2 is a file name, 100 × 100&90Q & jpg represents a picture in which a width (w)100px (pixels), height (h)100px, absolute quality (Q) 90%, and jpg format are required.
Step 306, determining whether the original URL points to a specified device by determining whether the domain name in the original URL includes the specified domain name, in response to the domain name in the original URL not including the specified domain name: encoding the original URL to obtain a source address parameter; and generating a proxy URL of the data, wherein the proxy URL comprises the specified domain name and the source address parameter. In particular, this step 306 may be performed by the URL processing module 206.
In some embodiments, the domain name may be the name of a computer or group of computers on the Internet that are comprised of a string of names separated by dots, or an IP address that identifies the electronic location of the computer at the time of data transmission. In some embodiments, it may be preselected to determine a specified domain name that points to a particular server or group of servers. For example only, the specified domain name is www.integrate.com.
The original URL may include the specified domain name pointing to the specified device, or may include domain names pointing to other devices. In some embodiments, it may be determined whether the domain name in the original URL is a specified domain name. In response to the domain name in the original URL not being the specified domain name, the original URL needs to be processed to obtain a proxy URL pointing to the particular server. For example, the original URL:
http:// www.userdomain.com/object2#100w _100h _90Q.jpg, Domain name
www.userdomain.com are not designated domain names. As another example, the original URL:
gif, domain name www.integrate.com is the designated domain name.
In some embodiments, if the domain name in the original URL does not include the specified domain name, the original URL may be encoded to obtain the source address parameter. For example, the original URL may be:
http:// www.userdomain.com/object2#100w _100h _90Q.jpg, encoded to obtain the source address parameter: aHR0cHM6Ly9ndy5 hbGlw. The rules for encoding the original URL may be predefined, for example, the encoding rules may correspond to a portion of domain name resolution rules on the particular server. The correspondence may be understood as being the same or a codec relationship. In some embodiments, the original URL may also be encrypted. In some embodiments, the original URL may also be provided with a check code. In some embodiments, the original URL may also have a different version. For example, the original URL carries a version number. In some embodiments, the original URL may also be compressed. In some embodiments, if the domain name in the original URL does not include the specified domain name, a proxy URL may also be generated, which may include the specified domain name and the source address parameter. For example, the proxy URL may be:
https:// www.integrate.com/aHR0cHM6Ly9ndy5 hbGlw. In some embodiments, the proxy URL may also include a filename, processing parameters, and/or other components in the URL.
In some embodiments, the data processing requirement in the request for data may be further processed according to a preset rule to obtain a processing parameter, and the processing parameter is written into the proxy URL. Taking pictures as an example, the preset rules may include picture quality, picture style, picture size, and arrangement or sequence of picture coding and decoding formats. The preset rule may be predetermined. For example, may correspond to at least a portion of a URL resolution rule on the particular server. The data processing requirements are processed according to the preset rules, so that the specified equipment can be ensured to analyze and identify the data processing requirements, and the data processing requirements can be processed according to the requirements. In some embodiments, the data processing requirements in the request for data may be obtained directly, or by parsing the original URL. For example only, if the data processing request is a picture with a width (w) of 100px, a height (h) of 100px, an absolute quality (Q) of 90%, and a jpg format, the processing parameter with a format of "@ 100w _100h _90 q.jpg" is generated after the data processing request is processed by a preset rule.
In some alternative embodiments, if the domain name in the original URL includes the specified domain name, the original URL may be directly used as the proxy URL, or the processing parameters may be obtained by processing the data processing requirements in the request for the data in a similar manner as described above, and the processing parameters are added to the original URL to generate the proxy URL for the data. In some embodiments, if the domain name in the original URL includes the specified domain name and the original processing parameters are included in the original URL, the processing parameters may be used to replace the original processing parameters in the original URL to generate the proxy URL for the data. For example, the original URL is http:// www.integrate.com/object #100 × 100&90Q & jpg, wherein the original processing parameter is 100 × 100&90Q & jpg, the data processing requirement obtained by analyzing 100 × 100&90Q & jpg is a picture in a jpg format which needs 100px wide, 100px high and 90 absolute quality, the data processing requirement is processed according to a preset rule to obtain a processing parameter of 100w _100h _90Q.jpg, and the generated proxy URL can be http:// www.integrate.com/object #100w _100h _90 Q.jpg.
By processing the original URL, the original URL is converted into a proxy URL which points to the same device and/or is coded by a uniform rule, and the domain name convergence of the data resource can be realized.
Step 308, sending a data download request according to the proxy URL. In particular, this step 308 may be performed by the sending module 208.
In some embodiments, the data download request may carry a proxy URL, and the proxy URL may include a requirement of the application program in the terminal 130 for data. In some embodiments, the sending module 208 may send the data download request to the server 130 according to the proxy URL.
The data downloading request is directed to a specific server by sending the proxy URL request downloading data carrying the designated domain name, the processing parameters of the preset rule and the source address parameters, and the server can perform domain name resolution and data downloading processing according to the unified rule, so that domain name convergence of data resources can be realized, and the time consumption of overall data transmission is reduced to a certain extent.
In some embodiments, step 310 may also be included, receiving data returned by the designated device. In particular, this step 310 may be performed by the first receiving module 210.
In some embodiments, the data returned by the designated device may include processed data (e.g., pictures). The server can process the data according to the data processing requirements, for example, clipping or coding or compressing pictures or reducing the image quality, so that the data volume is reduced, and therefore, the flow required by the terminal for receiving the return data is reduced, so that the flow can be saved. In addition, the data processing is completed on the designated equipment, the user terminal can directly acquire the required data without reprocessing, and the operation resource of the user terminal is saved.
In some embodiments, the first receiving module 210 may first parse a header of data (e.g., a picture) to obtain a picture codec format of the data. In some embodiments, the first receiving module 210 may perform decoding rendering on the picture according to a picture coding and decoding format, so as to obtain the picture required by the terminal 130.
In some embodiments, step 312 may also be included to present the data returned by the designated device. In particular, this step 312 may be performed by the presentation module 212.
In some embodiments, the presentation module 212 may present the data returned by the server based on the data requirements of the application in the terminal 130. Specifically, the data returned by the server may be displayed through a display interface of the terminal 130.
It should be noted that the above description of the process 300 is for illustration and description only and is not intended to limit the scope of the present disclosure. Various modifications and changes to flow 300 will be apparent to those skilled in the art in light of this description. However, such modifications and variations are intended to be within the scope of the present description. For example, steps 310 and 312 may be omitted. For another example, step 314 may be further included, if the domain name in the original URL includes the specified domain name, the URL processing module 206 may add the processing parameter to the original URL to generate the proxy URL of the data, or replace the original processing parameter in the original URL with the processing parameter to generate the proxy URL of the data.
The foregoing description has been directed to specific embodiments of this disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
Fig. 4 is a block diagram of a data downloading apparatus 400 according to still another embodiment of the present specification. As shown in fig. 4, the data downloading device 400 may include a second receiving module 402, a parsing module 404, a second obtaining module 406, a returning module 408 and a storing module 410. In some embodiments, the second receiving module 402, the parsing module 404, the second obtaining module 406, the returning module 408, and the storing module 410 may be included in the server 110 shown in fig. 1.
The second receiving module 402 may be configured to receive a data download request, where the data download request includes a proxy URL.
Further description of receiving the data download request can be found elsewhere in this application (e.g., in step 502 and its related description), and will not be described herein.
The parsing module 404 may be configured to parse the proxy URL to obtain an original URL of the data.
In some embodiments, the parsing module 404 may also be configured to parse the proxy URL to obtain data processing requirements for the data. In some embodiments, parsing the proxy URL may include parsing according to a unified parsing rule. Further description of resolving the proxy URL may be found elsewhere in this application (e.g., in step 504 and its associated description), and will not be repeated here.
The second retrieval module 406 may be configured to retrieve the data based at least on the original URL.
In some embodiments, the data may include sounds, pictures, text, or symbols. Further description of obtaining the data based on the original URL may be found elsewhere in this application (e.g., in step 506 and its related description), and will not be repeated herein.
In some embodiments, the second obtaining module 406 may further obtain raw data of the data based on the raw URL; the raw data is processed to obtain the data based on data processing requirements. Specifically, the second obtaining module 406 may preferentially encode the original data according to a picture coding and decoding format with a high priority. Further description of the processing of the raw data may be found elsewhere in this application (e.g., in step 506 and its associated description), and will not be repeated herein.
The return module 408 may be used to return the data.
In some embodiments, the data may include processed data as required by the data processing. Further details regarding the return of the data may be found elsewhere in this application (e.g., in step 508 and its associated description), and will not be repeated herein.
The storage module 410 may be used to store the processed data.
Further description of locally storing the processed data may be found elsewhere in this application (e.g., in step 510 and its associated description), and will not be described herein.
It should be understood that the apparatus shown in fig. 4 and its modules may be implemented in various ways. For example, in some embodiments, an apparatus and its modules may be implemented by hardware, software, or a combination of software and hardware. Wherein the hardware portion may be implemented using dedicated logic; the software portions may then be stored in a memory for execution by a suitable instruction execution device, such as a microprocessor or specially designed hardware. Those skilled in the art will appreciate that the methods and apparatus described above may be implemented using computer executable instructions and/or embodied in processor control code, such code being provided for example on a carrier medium such as a diskette, CD-or DVD-ROM, a programmable memory such as read-only memory (firmware) or a data carrier such as an optical or electronic signal carrier. The apparatus and modules thereof in this specification may be implemented not only by hardware circuits such as very large scale integrated circuits or gate arrays, semiconductors such as logic chips, transistors, or programmable hardware devices such as field programmable gate arrays, programmable logic devices, etc., but also by software executed by various types of processors, for example, or by a combination of the above hardware circuits and software (e.g., firmware).
It should be noted that the above description of the data downloading device and the modules thereof is only for convenience of description, and the description should not be limited to the scope of the illustrated embodiments. It will be appreciated by those skilled in the art that, having the benefit of the teachings of this apparatus, any combination of the various modules or sub-apparatus may be configured to connect to other modules without departing from such teachings. For example, the return module 408 and the storage module 410 may be the same module, and the return module 408 is used to return the data and store the data. For example, the modules in the data downloading device may be located on the same server, or may belong to different servers. For example only, the resolution module 404 may be located on a domain name resolution server, and the second receiving module 402, the second obtaining module 406, the returning module 408, and the storing module 410 may be located on a content distribution server. Such variations are within the scope of the present disclosure.
The foregoing description has been directed to specific embodiments of this disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
In some embodiments, the server may receive a proxy URL from the terminal. And analyzing the proxy URL according to a preset uniform analysis rule to obtain a data storage address and a data processing requirement in the request for the data. The parsing rule is used for stipulating the sequence, the spacers and the meaning of each component in the URL. Exemplary parsing rules may refer to the relevant description of the URL composition in step 304. In some embodiments, the parsing rules may further include decoding rules for source address parameters and decoding rules for processing parameters. The decoding rules of the source address parameters and the decoding rules of the processing parameters can be agreed in advance according to actual needs. Through the resolution of the proxy URL, whether the source address parameter is included in the proxy URL or not can be determined, and what the original URL corresponding to the source address parameter is can be determined. When the proxy URL does not include the source address parameter, the original URL of the data may be considered to point to the server itself, that is, the storage address of the data is local to the server or on a storage device in network communication with the server, and the server may obtain the requested data on the local or corresponding storage device, process the data according to the data processing requirement, and then return the data.
Fig. 5 is an exemplary flow diagram of a method 500 of data download according to further embodiments of the present description. In some embodiments, flow 500 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (instructions run on a processing device to perform hardware simulation), etc., or any combination thereof. One or more of the operations illustrated in fig. 5 for the data download flow 500 may be implemented by the data download system 100 illustrated in fig. 1. For example, the process 500 may be stored in the storage device 120 in the form of instructions and executed and/or invoked by the server 110.
Step 502, receiving a data downloading request; the data download request comprises a proxy URL. In some embodiments, step 502 may be performed on content distribution server 110-1. In particular, this step 502 may be performed by the second receiving module 402.
In some embodiments, a source address parameter may be included in the proxy URL, and the source address parameter may be encoded in an original URL of the data. Further description of the data download request can be found elsewhere in this application (e.g., in flowchart 3 and related description), and will not be repeated herein. The second receiving module 402 may receive a data download request.
At step 504, the proxy URL is parsed to obtain at least the original URL of the data. In some embodiments, step 504 may be performed on domain name resolution server 110-2. In particular, this step 504 may be performed by the parsing module 404. The content distribution server 110-1 may transmit the proxy URL to the domain name resolution server through the network.
In some embodiments, the original URL may point to other devices, e.g., the original URL includes a domain name pointing to other data sources. In some embodiments, domain names that point to other data sources may be understood as other domain names in addition to the specified domain name, e.g., www.userdomain.com. In some embodiments, other data sources may include other servers or other storage devices in other networks, and the like. Further description of the original URL and data processing requirements may be found elsewhere in this application (e.g., in flowchart 3 and related description), and will not be repeated herein.
In some embodiments, the proxy URL is parsed and data processing requirements may also be obtained. In some embodiments, the data may include a picture. In some embodiments, the data processing requirements may include one or more of picture quality, picture style, picture size, picture codec format.
In some embodiments, the data processing requirements may include at least two picture codec formats. In some embodiments, at least two picture codec formats may have different priorities. Further description of data processing requirements and picture coding and decoding formats may be found elsewhere in this application (e.g., in flowchart 3 and related description), and will not be repeated herein.
The proxy URL is analyzed according to a uniform analysis rule, so that the server can conveniently download and process data; in addition, the data processing requirements can include two or more than two picture coding and decoding formats, so that the requirements of multiple data formats can be compatible, and the user experience of data loading is improved. In some embodiments, the domain name resolution server 110-2 may send the resolved data to the content distribution server 110-1.
In step 506, the data is retrieved based at least on the original URL. In some embodiments, step 506 may be implemented by the content distribution server 110-1. In particular, this step 506 may be performed by the second obtaining module 406.
In some embodiments, the raw data may be obtained to other data sources based on the raw URL. The raw data may include data stored under the original domain name corresponding to the original URL, may include original sound, original pictures, original text, or original symbols that have not been processed in accordance with the data processing request, and may be, for example, data that has not been compression-encoded or cropped. In some embodiments, the second retrieval module 406 may retrieve the raw data of the data based on the raw URL.
The original data can be obtained through the original URL and can be downloaded to the data meeting the requirements of the terminal.
In some embodiments, the raw data may also be processed based on data processing requirements.
In some embodiments, the second acquisition module 406 may process the raw data based on data processing requirements. The processing of the raw data may comprise any data manipulation, which may for example comprise clipping, compression of the data. Taking a picture as an example, the processing may include cropping the picture by a preset size, performing color transformation, brightness adjustment, contrast transformation, and the like on the image. Taking the audio data as an example, the audio data may be selected, truncated, timbre-transformed, etc. This is not dealt with in the present application. The data processing requirements may also include coding requirements for data. In some embodiments, one or more codec formats may be included in the data processing requirements, with different codec formats having different priorities. Specifically, the second obtaining module 406 may encode the original data in an encoding and decoding format with a high priority; and if the encoding of the original data by the encoding and decoding format with high priority fails, encoding the original data according to the encoding and decoding format with low priority. In some embodiments, if the encoding according to the encoding/decoding format in the data processing requirement fails, the second obtaining module 406 may further encode the original data according to a locally preset encoding/decoding format. In some embodiments, the locally preset codec format may include any codec format other than data processing requirements. In some embodiments, the reason for the failure to encode the original data may include a network environment reason or an incompatible encoding format, and the like. In some embodiments, the data processing requirement may not include a requirement for encoding data, and at this time, the original data may be encoded directly according to a locally preset encoding and decoding format. More details about the codec can be found elsewhere in this application (e.g., in step 302 and its related description), and are not described herein. The data are encoded, the size of the data can be reduced to a certain degree, and the flow optimization effect is achieved. And through the coding and decoding formats with the priority, the data formats of the terminal and the server can be compatible, and the user experience of data loading is improved.
Step 508, return the data. In some embodiments, step 508 may be implemented by content distribution server 110-1. In particular, this step 508 may be performed by the return module 408.
In some embodiments, the data may include processed data as required by the data processing. In some embodiments, the return module 408 may return the data.
By returning the processed data to the terminal 130, the amount of the processed data is reduced, and the terminal can achieve the effect of saving traffic when downloading.
In some embodiments, step 510 of storing the data may also be included. In particular, this step 510 may be performed by the storage module 410.
In some embodiments, the storage module 410 may store the processed data locally. Specifically, the storage module 410 may store the processed data in the storage device 120, and use at least a portion of the proxy URL, such as the source address parameter and/or the processing parameter, and further such as the proxy URL, as an index of the processed data. In some embodiments, one or more combinations of data processing requirements, file names, and storage addresses of the data may also be used as an index. When the same data request exists in the follow-up process, the processed data can be directly obtained and returned, and therefore the consumption of computing resources is reduced.
It should be noted that the above description related to the flow 500 is only for illustration and description, and does not limit the applicable scope of the present specification. Various modifications and changes to flow 500 may occur to those skilled in the art, given the benefit of this description. However, such modifications and variations are intended to be within the scope of the present description. For example, the processed data may be stored directly by the return module 408 in step 508 without step 510.
The foregoing description has been directed to specific embodiments of this disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
Fig. 6 is a block diagram of a data download apparatus 600 according to yet another embodiment of the present description. As shown in fig. 6, the data downloading apparatus 600 may include a second receiving module 602, a determining module 604, a parsing module 606, a second obtaining module 608, a returning module 610, and a storing module 612. In some embodiments, the second receiving module 602, the determining module 604, the parsing module 606, the second obtaining module 608, the returning module 610, and the storing module 612 may be included in the server 110 shown in fig. 1.
The second receiving module 602 may be configured to receive a data download request, where the data download request includes a proxy URL.
Further description of receiving the data download request can be found elsewhere in this application (e.g., in step 702 and its associated description), and will not be described herein.
The decision block 604 may be used to determine whether the requested data is stored locally.
In some embodiments, if the requested data is stored locally, the data may be returned directly through the return module 610. By directly returning the locally stored request data, the effect of saving operation resources can be achieved.
In some embodiments, if the requested data is not stored locally, the following operations may be performed by the parsing module 606, the second obtaining module 608, the returning module 610, and the storing module 612.
In some embodiments, the parsing module 606 may parse the proxy URL, obtaining the original URL of the data. In some embodiments, the parsing module 606 may also parse the proxy URL to obtain data processing requirements for the data. In some embodiments, parsing the proxy URL may include parsing according to a unified parsing rule. Further description of resolving the proxy URL may be found elsewhere in this application (e.g., in step 708 and its associated description), and will not be repeated here.
In some embodiments, the second retrieval module 608 may retrieve the data based at least on the original URL. In some embodiments, the data may include sounds, pictures, text, or symbols. Further description of obtaining the data based on the original URL may be found elsewhere in this application (e.g., in step 710 and its related description), and is not repeated herein.
In some embodiments, the second obtaining module 608 may obtain raw data of the data based on the raw URL; processing raw data to obtain the data based on the data processing requirements. Specifically, the second obtaining module 608 may preferentially encode the original data according to a picture coding and decoding format with a high priority. Further description of the processing of the raw data may be found elsewhere in this application (e.g., in step 710 and its associated description), and will not be repeated herein.
In some embodiments, the return module 610 may return the data. In some embodiments, the storage module 612 may be used to store the data. In some embodiments, the data may include processed data as required by the data processing. Further details regarding the returning of the data and the storing of the data may be found elsewhere in this application (e.g., in step 712 and its associated description), and are not repeated herein. It should be understood that the apparatus shown in fig. 6 and its modules may be implemented in various ways. For example, in some embodiments, an apparatus and its modules may be implemented by hardware, software, or a combination of software and hardware. Wherein the hardware portion may be implemented using dedicated logic; the software portions may then be stored in a memory for execution by a suitable instruction execution device, such as a microprocessor or specially designed hardware. Those skilled in the art will appreciate that the methods and apparatus described above may be implemented using computer executable instructions and/or embodied in processor control code, such code being provided for example on a carrier medium such as a diskette, CD-or DVD-ROM, a programmable memory such as read-only memory (firmware) or a data carrier such as an optical or electronic signal carrier. The apparatus and modules thereof in this specification may be implemented not only by hardware circuits such as very large scale integrated circuits or gate arrays, semiconductors such as logic chips, transistors, or programmable hardware devices such as field programmable gate arrays, programmable logic devices, etc., but also by software executed by various types of processors, for example, or by a combination of the above hardware circuits and software (e.g., firmware).
It should be noted that the above description of the data downloading device and the modules thereof is only for convenience of description, and the description should not be limited to the scope of the illustrated embodiments. It will be appreciated by those skilled in the art that, having the benefit of the teachings of this apparatus, any combination of the various modules or sub-apparatus may be configured to connect to other modules without departing from such teachings. For example, the second receiving module 602, the parsing module 606, the second obtaining module 608, the returning module 610, and the storage module 612 in the data downloading device 600 may be the same as or directly the same as the second receiving module 402, the parsing module 404, the second obtaining module 406, the returning module 408, and the storage module 410 in the data downloading device 400, respectively. For another example, each module in the data download apparatus 600 may be located on the same server, or may belong to different servers. For example only, the resolution module 606 may be located on a domain name resolution server, and the second receiving module 602, the determining module 604, the second obtaining module 608, the returning module 610, and the storing module 612 may be located on a content distribution server. Such variations are within the scope of the present disclosure.
The foregoing description has been directed to specific embodiments of this disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
Fig. 7 is an exemplary flow diagram of a method 700 of data download according to further embodiments of the present description. In some embodiments, flow 700 may be performed by processing logic that may comprise hardware (e.g., circuitry, dedicated logic, programmable logic, microcode, etc.), software (instructions run on a processing device to perform hardware simulation), etc., or any combination thereof. One or more of the operations illustrated in fig. 7 for the data download flow 700 may be implemented by the data download system 100 illustrated in fig. 1. For example, flow 700 may be stored in storage device 120 in the form of instructions and executed and/or invoked by server 110.
Step 702, receiving a data downloading request; the data download request comprises a proxy URL. In some embodiments, step 702 may be performed on content distribution server 110-1. In particular, this step 702 may be performed by the second receiving module 602.
In some embodiments, a source address parameter may be included in the proxy URL, and the source address parameter may be encoded in an original URL of the data. In some embodiments, the second receiving module 602 may receive a data download request sent by the terminal 130. Further description of the data download request and the proxy URL may be found elsewhere in this application (e.g., in flowchart 5 and related description), and will not be repeated herein.
Step 704, determine if the requested data has been stored locally. In some embodiments, step 704 may be performed on content distribution server 110-1. Specifically, this step 704 may be performed by the determining module 604. In some embodiments, the data may include sounds, pictures, text, or symbols. In some embodiments, storing the requested data locally may include storing the requested data in storage device 120. In some embodiments, the determination module 604 may determine whether the requested data is already stored locally. For example, the determining module 604 may determine whether the requested data is stored in the storage device 120 by using the proxy URL as a query condition.
In some embodiments, if the requested data is stored locally, execution 706 returns the data directly. In particular, this step 706 may be performed by the return module 610. By directly returning the locally stored request data, the effect of saving operation resources can be achieved.
In some embodiments, steps 708-712 are performed if the requested data is not stored locally.
At step 708, the proxy URL is parsed, and at least the original URL of the data may be obtained. In some embodiments, step 708 may be performed at domain name resolution server 110-2. In particular, this step 708 may be performed by the parsing module 606. In some embodiments, the original URL may include a domain name pointing to other data sources. In some embodiments, the other data sources may include data sources stored at different memory addresses. In some embodiments, the proxy URL is parsed and data processing requirements may also be obtained. Further description of the original URL and data processing requirements may be found elsewhere in this application (e.g., in flowchart 5 and its associated description), and will not be repeated herein.
In some embodiments, parsing the proxy URL may include parsing according to a unified parsing rule. In some embodiments, the parsing module 606 may parse the proxy URL. Further description of resolving proxy URLs may be found elsewhere in this application (e.g., in flowchart 5 and related description), and will not be repeated herein.
Step 710, obtaining the data based at least on the original URL. In some embodiments, step 710 may be implemented by content distribution server 110-1. In particular, this step 704 may be performed by the second obtaining module 608. Further description of the raw data for obtaining the data based on the raw URL may be found elsewhere in this application (e.g., in step 506 and its associated description), and will not be repeated herein. The original data can be obtained through the original URL and can be downloaded to the data meeting the requirements of the terminal.
In some embodiments, the raw data may also be processed based on data processing requirements. Further description of processing raw data based on data processing requirements may be found elsewhere in this application (e.g., in step 506 and its associated description), and will not be repeated herein.
Step 712, return the data. In some embodiments, step 712 may be implemented by content distribution server 110-1. In particular, this step 712 may be performed by the return module 610. Further description of the returned processed data may be found elsewhere in this application (e.g., in step 508 and its associated description), and will not be described herein.
By returning the processed data to the terminal 130, the amount of the processed data is reduced, and the terminal can achieve the effect of saving traffic when downloading.
In some embodiments, step 712 may also include storing the data locally. In particular, this step 712 may be performed by the storage module 612. Further description of storing the processed data may be found elsewhere in this application (e.g., in step 510 and its associated description), and will not be described herein.
It should be noted that the above description related to the flow 700 is only for illustration and description, and does not limit the applicable scope of the present specification. Various modifications and changes to flow 700 will be apparent to those skilled in the art in light of this description. However, such modifications and variations are intended to be within the scope of the present description. For example, step 702 and step 704 may be combined in one step.
The foregoing description has been directed to specific embodiments of this disclosure. Other embodiments are within the scope of the following claims. In some cases, the actions or steps recited in the claims may be performed in a different order than in the embodiments and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In some embodiments, multitasking and parallel processing may also be possible or may be advantageous.
The beneficial effects that may be brought by the embodiments of the present description include, but are not limited to: (1) the picture can be downloaded according to the processing requirement actually required by the terminal, and the purpose of saving flow can be achieved; (2) different data formats of the server and the terminal can be compatible through the coding and decoding formats with different priorities, so that the user experience is improved; (3) by sending the data of the locally stored request, the effect of saving traffic can be achieved. It is to be noted that different embodiments may produce different advantages, and in different embodiments, any one or combination of the above advantages may be produced, or any other advantages may be obtained.
Having thus described the basic concept, it will be apparent to those skilled in the art that the foregoing detailed disclosure is to be considered merely illustrative and not restrictive of the present specification. Various modifications, improvements and adaptations to the present description may occur to those skilled in the art, although not explicitly described herein. Such modifications, improvements and adaptations are proposed in the present specification and thus fall within the spirit and scope of the exemplary embodiments of the present specification.
Also, the description uses specific words to describe embodiments of the description. Reference throughout this specification to "one embodiment," "an embodiment," and/or "some embodiments" means that a particular feature, structure, or characteristic described in connection with at least one embodiment of the specification is included. Therefore, it is emphasized and should be appreciated that two or more references to "an embodiment" or "one embodiment" or "an alternative embodiment" in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, some features, structures, or characteristics of one or more embodiments of the specification may be combined as appropriate.
Moreover, those skilled in the art will appreciate that aspects of the present description may be illustrated and described in terms of several patentable species or situations, including any new and useful combination of processes, machines, manufacture, or materials, or any new and useful improvement thereof. Accordingly, aspects of this description may be performed entirely by hardware, entirely by software (including firmware, resident software, micro-code, etc.), or by a combination of hardware and software. The above hardware or software may be referred to as "data block," module, "" engine, "" unit, "" component, "or" system. Furthermore, aspects of the present description may be represented as a computer product, including computer readable program code, embodied in one or more computer readable media.
The computer storage medium may comprise a propagated data signal with the computer program code embodied therewith, for example, on baseband or as part of a carrier wave. The propagated signal may take any of a variety of forms, including electromagnetic, optical, etc., or any suitable combination. A computer storage medium may be any computer-readable medium that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code located on a computer storage medium may be propagated over any suitable medium, including radio, cable, fiber optic cable, RF, or the like, or any combination of the preceding.
Computer program code required for the operation of various portions of this specification may be written in any one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C + +, C #, VB.NET, Python, and the like, a conventional programming language such as C, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, a dynamic programming language such as Python, Ruby, and Groovy, or other programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any network format, such as a Local Area Network (LAN) or a Wide Area Network (WAN), or the connection may be made to an external computer (for example, through the Internet), or in a cloud computing environment, or as a service, such as a software as a service (SaaS).
Additionally, the order in which the elements and sequences of the process are recited in the specification, the use of alphanumeric characters, or other designations, is not intended to limit the order in which the processes and methods of the specification occur, unless otherwise specified in the claims. While various presently contemplated embodiments of the invention have been discussed in the foregoing disclosure by way of example, it is to be understood that such detail is solely for that purpose and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover all modifications and equivalent arrangements that are within the spirit and scope of the embodiments herein. For example, although the system components described above may be implemented by hardware devices, they may also be implemented by software-only solutions, such as installing the described system on an existing server or mobile device.
Similarly, it should be noted that in the preceding description of embodiments of the present specification, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the embodiments. This method of disclosure, however, is not intended to imply that more features than are expressly recited in a claim. Indeed, the embodiments may be characterized as having less than all of the features of a single embodiment disclosed above.
Numerals describing the number of components, attributes, etc. are used in some embodiments, it being understood that such numerals used in the description of the embodiments are modified in some instances by the use of the modifier "about", "approximately" or "substantially". Unless otherwise indicated, "about", "approximately" or "substantially" indicates that the number allows a variation of ± 20%. Accordingly, in some embodiments, the numerical parameters used in the specification and claims are approximations that may vary depending upon the desired properties of the individual embodiments. In some embodiments, the numerical parameter should take into account the specified significant digits and employ a general digit preserving approach. Notwithstanding that the numerical ranges and parameters setting forth the broad scope of the range are approximations, in the specific examples, such numerical values are set forth as precisely as possible within the scope of the application.
For each patent, patent application publication, and other material, such as articles, books, specifications, publications, documents, etc., cited in this specification, the entire contents of each are hereby incorporated by reference into this specification. Except where the application is filed in a manner inconsistent or contrary to the present specification, and except where a claim is filed in a manner limited to the broadest scope of the application (whether present or later appended to the specification). It is to be understood that the descriptions, definitions and/or uses of terms in the accompanying materials of this specification shall control if they are inconsistent or contrary to the descriptions and/or uses of terms in this specification.
Finally, it should be understood that the embodiments described herein are merely illustrative of the principles of the embodiments of the present disclosure. Other variations are also possible within the scope of this description. Thus, by way of example, and not limitation, alternative configurations of the embodiments of the specification can be considered consistent with the teachings of the specification. Accordingly, the embodiments of the present description are not limited to only those embodiments explicitly described and depicted herein.