正文内容
http协议详细
来源:开心麻花
作者:开心麻花
2025-09-23
1

http协议详细(精选8篇)

http协议详细 第1篇

(二)召开会议

民主生活会上,班子成员要紧紧围绕主题和征求到的意见建议,认真开展党性分析,深入查找问题,实事求是开展批评与自我批评。顺序为先班子、后个人,先主要负责人、后其他班子成员。党组织书记要对班子成员的发言逐个进行评议,班子成员之间也要互相进行评议,帮助查找存在的问题,提出改进的意见建议。

(三)会后工作。

领导班子要针对群众普遍关心、反映强烈和民主生活会上查找出来的问题,提出切实有效的整改措施,明确具体责任人和整改时限。班子成员也要制定和落实个人整改措施。本次民主生活会形成的整改措施和干部群众对上次民主生活会形成的整改落实情况的满意度,会后要在一定范围向干部群众通报,确保整改措施落到实处。会后6天内上报民主生活会情况报告,报告要附有会前征求到的干部群众意见材料、会后制定的整改措施。

六、会议要求

(一)召开民主生活会,提前10天向街道党工委报告,主动接受指导和监督。

(二)制定落实整改措施。民主生活会后,办公室、党员领导领导干部要根据民主生活会情况,进一步查找问题,逐项研究,深入分析,制定出切实可行的整改措施和方案。同时要把学习贯彻党的十七大精神同同履行岗位职责结合起来,切实转变作风,做好本职工作,提高工作效率和和工作水平,发挥好党员领导干部表率带动作用。

(三)上报民主生活会情况。召开民主生活会的情况、原始记录、会前征求意见、整改措施和方案及上次民主生活会整改措施落实情况,要及时上报街道党工委备案。

http协议详细 第2篇

HTTP(HyperText Transfer Protocol)

====================================

是TCP/IP协议集中的一个应用层协议,用于定义浏览器和Web服务器之间交换数据的过程以及数据本身的格式。现在被广泛使用的是HTTP1.1,相对于1.0,1.1的最大特点是支持持续连接。

基于HTTP1.0协议的客户机与服务器的信息交换过程包括四个步骤:建立连接;发送请求信息;回送响应信息;关闭连接。

通信过程总是通过浏览器发送请求来启动的,Web服务器则是被动地对这些请求作出响应。HTTP协议是无状态的。

HTTP1.1与HTTP1.0的比较

------

HTTP1.0规定浏览器与服务器只保持短暂的连接,浏览器的每次请求都需要与服务器建立一个TCP连接,服务器完成请求处理后立即断开TCP连接。服务器不跟踪每个客户机,也不记录过去的请求。为了克服HTTP1.0的这个缺陷,HTTP1.1支持持久连接,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟。HTTP1.1还允许客户端不用等待上一次请求结果返回,就可以发送下一次请求,但服务器端必须按照接受到客户端请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容。

HTTP1.1还增加了host请求头字段,用于明确表示访问服务器上的哪个web站点,可以在一个IP地址和端口号上使用不同的主机名来创建多个虚拟web站点。HTTP1.1还有keep-alive请求头来支持持续连接。

HTTP消息的格式

-----------------------

一个完整的请求消息包括:一个请求行,若干消息头,以及实体内容,其中消息头和实体内容都是可选的。消息头和实体内容之间要用空行隔开。浏览器使用GET方式的请求消息可以放松不含实体内容的请求消息。只有使用POST, PUT, DELETE方式的请求消息中才可以包含实体内容。

Hypertext Transfer Protocol

GET / HTTP/1.1rn

Request Method: GET

Request URI: /

Request Version: HTTP/1.1

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap,application/x-shockwave-flash, application/vnd.ms-excel, application/vn

Accept-Language: zh-cnrn

UA-CPU: x86rn

Accept-Encoding: gzip, deflatern

User-Agent: Mozilla/4.0(compatible;MSIE 7.0;Windows NT 6.0;SLCC1;.NET CLR

2.0.50727;.NET CLR 3.0.04506)rn

Connection: Keep-Alivern

rn

一个完整的响应消息包括:一个状态行,若干消息头,以及实体内容。同样,消息头和实体内容都是可选的。消息头和实体内容之间要用空行隔开。消息响应的实体内容就是网页文档的内容。

Hypertext Transfer Protocol

HTTP/1.1 200 OKrn

Request Version: HTTP/1.1

Response Code: 200

Cache-Control: privatern

Content-Type: text/html;charset=UTF-8rn

Set-Cookie:

PREF=ID=7f53f6f0b1511417:NW=1:TM=1205568884:LM=1205568884:S=zHreYqNC-Z3rmOc6;expires=Mon, 15-Mar-2010 08:14:44 GMT;path=/;domain=.google.cnrn

Content-Encoding: gziprn

Server: gwsrn

Transfer-Encoding: chunkedrn

Date: Sat, 15 Mar 2008 08:14:44 GMTrn

rn

HTTP chunked response

Data chunk(1025 octets)

Chunk size: 1025 octets

Data(1025 bytes)

HTTP消息头

----------------

HTTP请求和响应都使用消息头来描述HTTP消息本身的信息,可以实现HTTP客户机与服务器之间的条件请求和应答。

消息头可以分为:通用消息头,请求头,响应头,实体头四类。

请求行与状态行

-----------------------

请求消息的请求行包括三个部分:请求方式,资源路径,以及使用的HTTP版本。如:GET /

HTTP/1.1rn。

响应消息的状态行包括三个部分:HTTP协议的版本号,一个表示成功或者失败的整数代码(状态码)和对状态码进行描述的文本信息。如:HTTP/1.1 200 OKrn。

使用GET和POST方式传递参数

-------------

在URL地址后面可以附加一些参数,每个参数由参数名和参数值组成,例如:当使用GET方式提交表单内容时,浏览器将各个表单字段元素及其数据按照URL参数的格式附加在请求行中的资源路径后面。使用GET方式传送的数据量有限制,一般在1KB以下。

当使用POST方式提交表单内容时,浏览器将个表单字段元素及其数据作为HTTP消息的实体内容发送给服务器。因此数据量可以比GET方式大的多。使用POST方式时,还必须将Content-Type消息头设置为“application/x-www-form-urlencoded”,将Content-length消息头设置为实体内容的长度。

响应状态码

---------------

1.100~199: 成功接受请求,要求客户端继续提交下一次请求才能完成整个处理过程。

2.200~299: 成功接受请求并已完成整个处理过程。

3.300~399: 为完成请求,客户端需要进一步细化请求。

4.400~499: 客户端的请求有错误。

5.500~599: 服务器段出现错误。

通用信息头

==============

即能用于请求消息,也能用于响应消息,包括一些与被传输的实体内容没有关系的常用消息头字段。

1.Cache-Control

2.Connection

3.Date

4.Pragma

5.Trailer

6.Transfer-Encoding

7.Upgrade

8.Via

9.Warning

Cache-Control

--------------------

如果位于请求消息头,用于通知位于客户机和服务之间的代理服务器如何使用已缓存的页面,可以取值为:no-cache, no-store, max-age, max-stale, min-fresh, no-transform, only-if-cached等。

如果位于响应消息头,用于通知客户机和代理服务器如何缓存该页面,可以取值为:public, private, no-cache, no-store, no-transform, must-revalidate, proxy-revalidate, max-age, s-maxage等。

Connection

---------------

用于指定处理完本次请求/响应后,客户端与服务器是否还要继续保持连接。如果为Keep-Alive,则保持连接,如果为close,则关闭。HTTP1.1默认采用持久连接。

Date

---------

表示HTTP消息产生的当前时间。服务器回送的正常响应消息中,应该总是设置Date头字段。如果客户机发送的请求消息中包含有实体内容,也要设置Date。

Pragma

------------

只能固定为no-cache.Trailer

-----------

一些头字段可以放置在整个HTTP消息的尾部。

Transfer-Encoding

---------------------

指定传输编码方式,目前标准的设置值只有chunked,用于把整个消息分成一连串的分段后进行传输。

Upgrade

------------

允许客户机指定它所支持并希望将当前协议切换到的通信协议。

Via

-----

用于指定HTTP消息所途径的中介代理服务器名称和所使用的协议。

请求头

=========

客户端可以接受的数据类型,压缩方法,语言,以及发出请求的超链接所属页面的URL地址等信息。Accept:指出客户端程序能够处理的MIME类型。

Accept-Charset:用于指出客户端程序可以使用的字符集。

Accept-Encoding:客户机能够进行解码的数据编码方式。

Accept-Language:指定客户机期望服务器返回哪个国家语言的文档。

Authorization:两种认证方式BASIC,和DIGEST.Except:

From:

Host: 指定资源所在的主机号和端口号。HTTP1.1中每个请求消息中都必须包含Host请求字段。If-Match:

If-Modified-Since:

If-None-Match:

If-Range

If-Unmodified-Since

Max-Forwards:

Proxy-Authorization:

Range:

Referer: 当单击另一个网页上的超链接时发出的请求在Referer字段中指定URL。

TE:

User-Agent:

响应头

==========

Accept-Range, Age, Etag,Location: 用于通知客户机应当到哪个新的地址去获取文档。状态码为300~399的响应消息都应该使用Location字段将新的文档地址告诉客户机,以便客户机自动重新连接到新地址并检索新文档。使用Location头的HTTP消息不应该有实体内容。所以,HTTP消息头中不能同时出现Location和Content-Type这两个头字段。

Proxy-Authenticate,Retry-After, Server, Vary, WWW-Authenticate。

实体头

========

是实体内容的元信息,描述了实体内容的属性,包括实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。

Allow: 指定客户端请求的资源所支持的请求方法(如GET,POST等)。

Content-Encoding: 指定实体内容的压缩编码方式。

Content-Language:

Content-Length: 用于表示实体内容的长度(字节数),浏览器与Web服务器之间使用持久连接时,这个字段在非Chunked传输编码的响应消息中是必不可少的。

Content-Location: 指定响应消息中所封装的实体内容的实际位置路径。

Content-MD5, Content-Range, Content-Type

Expires: 指定当前文档应该在什么时候被认为过期,浏览器到哪个时候以后不能再继续使用本地缓存,而是在有需要时应该像服务器发出新的请求访问。

Last-Modified:文档的最后更改时间。

扩展头

========

现在流行的浏览器实际上都支持Cookie,Set-Cookie,Refresh和Content-Disposition等几个常用的扩展头字段。

http协议详细 第3篇

随着电子技术和科技的发展, 计算机桌面的应用程序更新速度快, 很短时间内就会推出新的版本, 脑桌面应用程序新版本要求客户端运行版本与之相适应。因此, 软件设计者在进行软件的后续开发时, 要考虑到软件版本、软件的数据结构兼容性等问题。数据结构的兼容性是设计者要考虑的重点问题之一, 兼容性方面出问题的话, 软件的开发成本和后期的软件维护成本会很高, 既不实用也不经济。

随着互联网的普遍应用, 借助于网络来实现电脑桌面应用程序的更新升级成为了可能和常态。为适应新形势的发展, 在桌面应用程序中添加软件的在线更新的功能, 在用户使用程序时候出现新版本后让用户自行更新, 不仅方便了用户, 节约了时间, 也免去了后期的维护, 既方便又快捷, 可谓一举多得。

自动更新程序的通信协议, 可以采用比较成熟的HTTP协议, 也可以编写程序实现Socket通信。综合衡量和比较两种方式的优缺点后, 笔者建议选择HTTP协议来实现自动更新程序的构建。

2 HTTP协议的优点分析

HTTP协议 ( (Hyper Text Transfer Protocol) 是超文本传输协议的缩写, 这个协议是无状态的协议, 具有无状态、简单快速, 无连接、灵活等多种优点。HTTP传输协议的主要优点和特点有以下几个方面。

2.1 可传输任意类型的数据对象

HTTP协议的一个优点就是应用过程中传输数据灵活广泛, HTTP协议允许传输任意类型的数据对象, 正在传输的数据类型由Content-Type加以标记。

2.2 操作方式简单, 服务器的程序小

HTTP协议客户向服务器请求服务时, 不需要传送请求其他方面的内容, 只需传送请求方法和路径就能实现。应用过程操作方式、请求方法比较简单, 容易实现。具体的请求方法有GET、POST、HEAD三种主要方法。由于HTTP服务器的程序比较小, 占用空间不大, 因而通信速度很快。

2.3 无状态协议

HTTP协议是无状态协议。所谓无状态, 是指协议对于事务处理没有记忆能力, 如果后续处理需要前面的信息, 则它必须重重新传输。无状态协议可能导致每次连接传送的数据量增大, 但是在服务器不需要先前信息时, 它的应答速度却变得较快。

2.4 无连接, 可节省传输时间

HTTP协议限制每次连接时, 只需要处理一个请求, 服务器处理完客户的请求, 并收到客户的应答后, 就会自动断开连接。这种传输方式传输速度快, 可以有效的节省传输时间。

2.5 端口开放, 一般不会被屏蔽

由于考虑网络安全、信息安全等因素, 很多网络都设置了防火墙, 很多端口都会被屏蔽掉。对于HTTP最常用的80端口来说, 却不在屏蔽的范围之内, 这样应用起来不会因为被屏蔽而造成不必要的麻烦, 同时也保证了程序运行的畅通性和广泛性。

3 数据流程及数据结构

基于HTTP协议下的自动更新平台可以对数据流程扩展, 例如断点续传、开始更新前检查上次留下的缓存、自动程序线程定时启动等。

基于HTTP协议下的桌面应用程序自动更新平台中, 有多个软件产品存储在U_Products表中。这些软件产品有多个客户端验证时需要用到的序列号, 这些序列号存储在U_Clients中。序列号是客户端的凭证, 只有授权了的序列号才能访问平台。文件列表用于比较客户端文件与服务器上的各个文件的新旧。其中的时间戳是主要比较字段, 文件名用于记录定位。

4 客户端工作流程

实际应用中, 基于HTTP协议下的自动更新平台客户端工作流程要比上述工作流程复杂很多。等主程序启动之后, 会创建自动升级程序的线程, 首先读出产品的序列号, 通过URL参数传值的形式传到Web端。这些信息包括客户端计算机硬件信息、当前软件版本、客户端操作系统版本等。运行在Web端的脚本响应请求, 判断序列号是否正确和过期, 如果序列号正确, 没有过期, 请求通过之后, 就会输出与该序列号对应的软件的所有文件列表。

随后, 自动升级程序就会通过HTTP协议下载该文件列表。列表下载完毕后, 会读出上一次升级之后保存下来的文件列表, 并与下载下来的列表进行对比, 通过文件列表中的时间戳对比, 找出新的文件。也可以采用时间戳转成浮点数后大小对比的策略。时间戳转成浮点数后大小对比的策略就可以避免高版本文件通过升级之后版本降低。

5 改进

自动更新程序的运行要靠互联网完成, 当网络连接状况很差的时候, 更新所需要的时间就会很长, 甚至不能完成更新。为了解决这个问题, 可以对文件进行逐个ZIP压缩, 通过HTTP协议传输压缩流, 而不是文件本身的数据流。客户端下载之后进行解压缩。需要说明的是, 这里的压缩是对文件逐个压缩, 而不是整体打包。如果客户端只需要更新一个文件, 就只需要下载该文件的压缩包。若是整体打包的话, 这种情况下, 客户只能下载整个压缩包, 不但对断点续传提出了更高的要求, 也浪费了时间, 增加了程序运行工作量和冗杂。

参考文献

[1]何航校, 蒋兆远.一种改进的通用客户端自动升级模型及实现[J].兰州交通大学学报, 2005.24.

[2]C.J.Date.数据库系统导论[M].北京:机械工业出版社, 2000.

[3]莫勇腾.深入浅出设计模式 (C#/Java版) [M].北京:清华大学出版社, 2006.

万维网的HTTP和FTP协议 第4篇

摘 要:20世纪40年代以来,人们就梦想能拥有一个世界性的信息库。在这个信息库中,信息不仅能被全球的人们存取,而且能轻松地链接到其他地方的信息,使用户可以方便快捷地获得重要的信息。1991年8月6日,伯纳斯·李发表万维网项目简介的文章。标志着万维网公共服务的首次亮相。1994年6月,中国新闻计算机网络(China News Digest,CND)将World Wide Web称为“万维网”。万维网联盟W3C理事会(World Wide Web Consortium,W3C)于1994年10月在麻省理工学院(MIT)计算机科学实验室成立。

关键词:万维网;WWW;HTTP;FTP;Web服务器

WWW(World Wide Web,3W,Web)中文译名为万维网,环球信息网等。是欧洲核物理研究中心(CERN)为全球范围的科学家利用Internet建立在客户机/服务器模型之上,为了方便地进行通信、交流和查询所建立的。Internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个Internet上。万维网是一个分布式的超媒体(Hypermedia)系统,它是超文本(Hypertext)系统的扩充,所谓超文本是包含指向其他文档的链接文本,超文本是万维网的基础,在万维网中,主要使用了两个协议,分别是HTTP协议和FTP协议。

1 HTTP协议

超文本传输协议(Hypertext Transfer Protocol,HTTP)提供了访问超文本信息的功能,是万维网与Web服务器之间的通信协议,属于应用层。HTTP协议是用于分布式协作超文本信息系统的、通用的、面向对象的协议。可以用于传输各种超文本页面和数据。

HTTP协议包括以下4个步骤:

第一,建立连接。客户端向服务器发出建立连接HTTP报文的请求,服务端将响应发送回客户端,连接建立。

第二,发送请求。客户端按照HTTP协议通过连接线路向服务端发送请求。

第三,给出应答。服务器按照客户端的要求给出应答,将结果HTML文件返回给客户端。

第四,关闭连接。客户端接到HTTP报文请求后关闭连接。

HTTP协议是基于TCP/IP之上的协议,它不仅保证是否能够正确传输超文本文档,而且还要确定传输文档中的哪一部分,以及哪部分内容首先显示等。通常HTTP报文消息包括客户向服务器的请求报文和服务器向客户的响应报文。这两种类型的报文消息由一个起始行,一个或者多个头域,一个指示结束的空行和消息体组成。HTTP的报文结构包括通用首部、请求首部、响应首部、实体首部和实体主体五个部分。每个头域由<域名>,<:>和<域值>三部分组成。(注意:域名与大小写无关,可以在域值前添加任何数量的空格符,可将万维网的头域扩展为多行。)

通用域名首部包含请求和响应报文,其中的头域还包含Cache-Control、Connection、Date、Pragma、Transfer-Encoding、Upgrade、Via等。对通用头域的扩展要求通讯双方都支持,如果存在不支持的通用头域,一般将会作为实体处理。

一次HTTP操作其工作过程可分为以下几步:

第一,浏览器分析链接指向页面的URL。

第二,浏览器向DNS请求解析IP地址。

第三,域名系统DNS解析出微软服务器的IP地址。

第四,浏览器与该服务器建立TCP链接。

第五,浏览器发出HTTP请求GET。

第六,服务器通过HTTP响应把文件index.heml发送给浏览器。

第七,TCP连接释放。

第八,浏览器将文件index.heml进行解释,并将Web页显示给用户。

如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,由显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。HTTP采用TCP作为运输层协议,保证了数据的可靠传输,HTTP不需要考虑数据在传输过程中丢失后是怎样重传的,但是HTTP协议本身是无连接的,即通信双方在交换HTTP报文之前不需要先建立HTTP链接。

2 FTP协议

文件传输协议(File Transfer Protocol,FTP)是因特网上使用最广泛的文件传输协议,FTP运行在TCP上采用客户/服务器模型,包括两个组成部分,分别为FTP服务器、FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于服务器上的资源。FTP使用20和21这两个端口,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,数据传输端口就是21。

FTP提供以下功能:

第一,提供不同种类的主机系统之间的传输。

第二,使用户对远程服务器上的文件进行管理。

第三,提供文件共享能力。

另FTP还有两种模式,主动方式Standard(PORT方式),被动方式Passive(PASV方式)。Standard模式下FTP客户端发送PORT命令到服务器。Passive模式下FTP的客户端发送PASV命令到FTP Server。

Port:FTP客户端与服务器的21端口建立控制连接,用来传输控制信息,客户端发送请求,通过控制连接发送给服务器端的控制进程。服务器通过自己的数据连接端口连接至客户端的指定端口并发送数据。

FTP服务器在很多情况下是不支持PASV模式的,因为很多防火墙在设置时,是不允许接受外部发起连接的,因而位于防火墙后或内网的客户端无法穿过防火墙打开FTP服务器的高端端口,故许多内网的客户端不能用PORT模式登陆FTP服务器,造成无法连接。

文件交换协议(File Exchange Protoco,FXP)相当于是FTP的控制器,也可以认为FXP本身其实就是FTP的一个子集,使一个FTP客户端控制两个FTP服务器,在两个服务器之间传送文件。FTP协议的任务是使计算机将文件传送至另一台计算机,它与这两台计算机所处的位置、联接的方式、是否使用相同的计算机操作系统均没有关系。例如,两台计算机通过FTP协议连接,并且能够成功地访问Internet,用户就可以使用FTP命令来传输文件。

其传输方式可分为两大类:ASCII传输和二进制数据传输。

ASCII传输模式:若客户端当时正在拷贝的文件中包含的简单ASCII码,在机器上运行的是不同的操作系统,当文件传输时,FTP协议通常会自动地调整文件的内容以便于将文件“翻译”成另一台计算机存储的文本文件格式,就是我们通常所说的翻译。但是时常会有这样的情况发生,用户正在传输的文件包含的不是文本文件,它们可能是程序、数据库、字处理文件或者压缩文件等信息。那么这时,ASCII传输模式则会消耗大量的时间、资源进行翻译,与我们所希望的相去甚远,于是,出现了第二种传输方式,二进制传输。

参考文献:

[1]沈红,李爱华.计算机网络(第二版)[M].清华大学出版社,2010.

[2]谢希仁.计算机网络(第5版)[M].电子工业出版社,2011.

作者简介:周开强(1993—),男,黑龙江庆安人。

张广旭(1994—),男,辽宁建昌人。

http协议详细 第5篇

Python采用httplib库进行HTTP通讯,用法很简单:

import httplib #导入httplib库

conn = httplib.HTTPConnection(“10.197.32.136”,8080)#建立http链接,只需要IP地址和端口

conn.request(“POST”,“/RealTimeServer/WebSocketDemo”,str,{})#发送url请求

response = conn.getresponse()#获取返回信息

conn.close()#关闭链接

request函数是非阻塞函数,也就是说,它向服务器发送了url请求之后,可以正常运行之后的任务。

getresponse函数是阻塞函数,如果没有收到服务器的返回信息,程序将无法继续。

close函数在任何地方都可以调用,因此,如果无需服务器返回信息,则可以在发送请求之后就关闭链接。

Httplib无法连续发送两个request,例如:

conn.request(“POST”,“/RealTimeServer/WebSocketDemo”,str1,{})conn.request(“POST”,“/RealTimeServer/WebSocketDemo”,str2,{})

程序将会抛异常,并且关闭。因为http协议本身一次链接只支持一个request,在收到response或者关闭才能开启下一次链接。所以,正常的程序应该是:

conn.request(“POST”,“/RealTimeServer/WebSocketDemo”,str1,{})

conn.close()

或者:

conn.request(“POST”,“/RealTimeServer/WebSocketDemo”,str1,{})

response = conn.getresponse()

http协议详细 第6篇

1、TCP/IP连接手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。

建立起一个TCP连接需要经过“三次握手”:

第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客户端交互,最终确定断开).2、HTTP连接

HTTP协议即超文本传送协议(Hypertext Transfer Protocol),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。

HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。

2)在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。

由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道客户端“在线”。若服务器长时间无法收到

客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。

3、SOCKET原理3.1套接字(socket)概念

套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

3.2 建立socket连接

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket,另一个运行于服务器端,称为ServerSocket。

套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。

服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。

客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。

连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

4、SOCKET连接与TCP/IP连接

创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。

socket则是对TCP/IP协议的封装和应用(程序员层面上)。也可以说,TPC/IP协议是传输层协议,主要解决数据 如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:

“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如 果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,比如HTTP、FTP、TELNET等,也 可以自己定义应用层协议。WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”

我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议。实际上,Socket跟TCP/IP协议没有必然的联系。Socket编程接口在设计的时候,就希望也能适应其他的网络协议。所以说,Socket的出现 只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write等等。网络有一段关于socket和TCP/IP协议关系的说法比较容易理解:

“TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”

实际上,传输层的TCP是基于网络层的IP协议的,而应用层的HTTP协议又是基于传输层的TCP协议的,而Socket本身不算是协议,就像上面所说,它只是提供了一个针对TCP或者UDP编程的接口。socket是对端口通信开发的工具,它要更底层一些.5、Socket连接与HTTP连接

由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。但在实际网络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。

而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。

很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。

http协议是应用层的协义

有个比较形象的描述:HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。

http协议详细 第7篇

1)Get, 它用于获取信息,注意,他只是获取、查询数据,也就是说它不会修改服务器上的数据,从这点来讲,它是数据安全的,而稍后会提到的Post它是可以修改数据的,所以这也是两者差别之一了,

2) Post,它是可以向服务器发送修改请求,从而修改服务器的,比方说,我们要在论坛上回贴、在博客上评论,这就要用到Post了,当然它也是可以仅仅获取数据的。

3)Delete 删除数据。可以通过Get/Post来实现。用的不多,暂不多写,以后扩充。

4)Put,增加、放置数据,可以通过Get/Post来实现。用的不多,暂不多写,以后扩充。

下面简述一下Get和Post区别:

1) GET请求的数据是放在HTTP包头中的,也就是URL之后,通常是像下面这样定义格式的,(而Post是把提交的数据放在HTTP正文中的)。

login.action?name=hyddd&password=idontknow&verify=%E4%BD%E5%A5%BD

a,以 ? 来分隔URL和数据;

b,以& 来分隔参数;

c,如果数据是英文或数字,原样发送;

d,如果数据是中文或其它字符,则进行BASE64编码,

2)GET提交的数据比较少,最多1024B,因为GET数据是附在URL之后的,而URL则会受到不同环境的限制的,比如说IE对其限制为2K+35,而POST可以传送更多的数据(理论上是没有限制的,但一般也会受不同的环境,如浏览器、操作系统、服务器处理能力等限制,IIS4可支持80KB,IIS5可支持100KB)。

3)Post的安全性要比Get高,因为Get时,参数数据是明文传输的,而且使用GET的话,还可能造成Cross-site request forgery攻击。而POST数据则可以加密的,但GET的速度可能会快些。

所以综上几点,总结成下表:

操作方式

数据位置

明文密文

数据安全

长度限制

应用场景

GET

HTTP包头

明文

不安全

长度较小

查询数据

POST

HTTP正文

可明可密

安全

支持较大数据传输

http协议详细 第8篇

网络的不断普及和计算机技术的飞速发展,使得越来越多的人涌入到网络这个虚拟环境中。网络带给人们巨大的便捷,使人们的生活更加丰富多彩。人们在网络世界中学习、娱乐、分享、汲取。然而网络中有许多积极向上的内容,但也不可避免的出现一些如垃圾信息等负面消息。目前大部分信息仍是依靠网页传播,如贴吧、微博等,都是通过网页的形式传播大量信息。尤其是信息在微博中的传播有着范围广,速度快等特点。许多网页都采用HTTP协议,研究基于HTTP协议的数据抓取与还原技术,结合分词技术和关键词匹配算法能实现一个实时信息监测预警系统,从而达到对敏感信息快速反应、降低人力成本等目的。

2 HTTP协议解析与数据还原

HTTP属于应用层的面向对象的协议,它主要用于从WWW服务器传输超文本到本地浏览器。它是一个无状态的协议,即同一个客户端的这次请求和上次请求是没有对应关系,这也是实现系统实时监控快速反应的一个重要条件。HTTP协议传输层通常采用TCP协议,默认端口号为80。也就是说原始数据依次通过HTTP协议(应用层)、TCP协议(传输层)、IP协议(网络层)封装,然后到达数据链路层,最后在网络中传输。通过抓包接口可以直接从网络中抓取到TCP数据包,因此只需先解析TCP协议,然后解析HTTP协议,就能到达数据抓取与还原的目的。

2.1 TCP协议解析

在TCP数据包中有三个字段非常重要,是数据还原的重要依据,即序列号(Sequence)、确认号(Ack_num)和数据长度(Data_length)。TCP数据报文中序列号字段,表示本数据报文所发送的数据部分中第一个字节的序号。也就是说对于一长段数据,TCP协议将其分成若干段数据,将这些数据封装成若干个TCP数据报文,那么序列号字段就表示,当前TCP数据报文中数据部分的第一个字节在原数据(长段数据)中的位置;确认号表示希望对方下次发送的TCP报文中,数据部分的第一个字节的序号。数据长度则表示此数据包包含的有效数据的长度;通俗来讲,确认号相同的为同一片数据,序列号表示此数据包在这片数据中的位置,数据长度表示这个数据包中有多少字节的有效数据。

对抓取到的TCP数据包进行几个步骤即可实现解析:

(1)将所有确认号相同的数据包保存在同一数组中data[n];

(2)将数组按照顺序号由小到大排序;

(3)校验数据完整性,从数组第二个元素开始判断:data[n].sequence=data[n-1].sequence+data[n-1].data_length,若数组中所有元素都满足上述等式,则表示数据完整。

(4)若数据完整,则依次从数组中提取出数据部分并存储在一个字符串中,即得到了HTTP数据包。

如图1所示,展示出TCP数据包解析过程。

2.2 HTTP协议解析

HTTP数据包包含头部字段和数据字段两部分。头部字段存储了数据的编码方式、压缩方式、数据类型等信息。本文简要介绍HTTP数据包中文本内容的解析还原。

由图1得到了一个完整的HTTP数据包,HTTP数据包头部字段Content-Encoding:gzip表示响应数据包中的数据部分是经过gzip压缩后传输的;ContentType:text/html;charset=GBK表示响应数据类型是文本或HTML格式,其采用GBK编码;Transfer-Encoding:chunked表示数据是经过分片后传输的,当服务器无法确定响应消息包含实体内容的大小时(如大文件下载),服务器一般使用chunked编码。

对于没有分片的数据可以直接将HTTP实体部分取出,然后先通过对应的解压方式将数据解压,再根据HTTP报文头部中指出的数据编码信息还原出数据。然而对于经过Chunk编码方式分片的数据,则需要先根据Chunk数据分片格式重组,然后进行数据解压,最后得到原始数据。

3 藏文文本抽取与藏文分词接口

3.1 藏文文本抽取

在第2节中还原得到的数据中可能同时包含中文、英文和藏文内容,本文主要针对藏文文本内容预警,因此需要从多语言环境中抽取出藏文文本。

藏文文本抽取的主要思路:不同编码标准中藏文所在编码区域不同,从HTTP数据报文中可以得知当前数据所采用编码,根据编码方法找到该编码方案中对应的藏文编码区域。根据当前编码标准,按相应规则读取还原结果,然后判断所读取字节是否是藏文字符的编码。目前有众多藏文编码方法,本文针对WEB页面常用几种藏文编码方法,其中包括UCS-2中藏文编码、UTF-8中藏文编码。

UCS-2中用两个字节表示一个字符,是Unicode编码的一种实现方式,因此每次从还原结果中读取两个字节,若这两个字节所表示的16进制数在0x0FF0与0x0FFF之间则表示此字符是藏文字符。

UTF-8中采用变长的方式表示字符,它也是Unicode编码的一种实现方式,一个字符可能用1到6个字节来表示。可以先将UTF-8编码抓换成UCS-2编码,然后再采用UCS-2中的方法判断藏文字符。

3.2 藏文分词接口

目前绝大部分发布的藏文分词系统都未开源,比如Set T藏文分词系统和央金藏文分词系统等。唯一开源的藏文分词系统有西北民族大学的TIP-LAS藏文分词系统,但由于该分词系统需长期进行语料的采集、人工标注语料和训练等,才能集成于系统中,故文采用调用其在线分词服务接口实现藏文分词部分。

本文用POST方法将所需分词藏文提交至藏文在线分词服务器,其中HOST为:http://*.*.*.*/segment,而content参数中即为所需提交的待分词藏文,其内容需要经过URLEncoder.encode方法编码之后作为content参数的值。

4 关键词匹配

传统关键词匹配算法一般采用字符串匹配的模式。在这种模式下,对于一个大小为1000个的预警词库来说,完成一次关键词匹配,最坏的情况下要将每个词都与原始数据匹配一次,这样就需要对原始数据匹配1000次。而如果分词后再进行关键词匹配,并采用合适的匹配算法,只需要对原始数据匹配一遍就可以确定是否包含关键词。目前汉语、藏语分词技术都比较成熟,使得将分词技术应用到实时信息监测系统中成为可能。

本文结合DFA的思想,采用HASH表查找算法进行关键词匹配。首先需要建立一个多层动态HASH表结构的预警词库,一个词汇有多个字组成,把每个字都看作DFA中的一个状态,这样一个词汇就可以表示为字之间的状态跳转。第一层HASH表由所有预警词汇的第一个字组成,第二层到第n层的HASH表则由上一层字跳转状态组成。为了区分类似于“西藏”、“西藏大学”这样的包含词语,在每个词语结束后增加一个句号,表示词语结束。图2给出预警词库建立过程。

对每个字的下一个跳转状态都建立一个HASH表,若该字的下一个跳转状态已经存在在其HASH表中则不需要改变;若该字的下一个跳转状态不在其HASH表中,则重建其HASH表,并将新的跳转状态加入HASH表中。

当进行关键词匹配时,如待匹配词为“内藏寮”,首先在第一层HASH表中对“内”进行查找,匹配成功;然后在“内”的下一跳转状态HASH表中对“藏”查找,匹配成功;接着在“藏”的下一跳转状态HASH表中对“寮”进行查找,匹配成功;最后在“寮”的下一跳转状态HASH表中对“。”进行查找,匹配成功;则此预警词匹配成功。若待匹配词为“西藏”,首先在第一层HASH表中对“西”进行查找,匹配成功;然后在“西”的下一跳转状态HASH表中对“藏”查找,匹配成功;接着在“藏”的下一跳转状态HASH表中对“。”进行查找,匹配失败;则表示待匹配词“西藏”匹配失败。

5 结束语

实时信息监测系统能对敏感词汇实时预警,从而协助网络管理人员快速反应。它是建立在协议分析和数据还原的基础上,然后经过藏文文本抽取、藏文分词系统和关键词匹配算法,最后达到预警目的。每个模块的效率都将影响整个系统的实时性。

本文简要分析了TCP协议和HTTP协议的解析、藏文文本抽取的方法,同时提出了一个高效的关键词匹配算法,在分词的基础上,使得关键词匹配算法的时间复杂度与预警词库大小无关,而只与待匹配词的长度相关,且每步查找的时间复杂度为O(1),从而是系统有良好的实时性。

由于分词系统本身存在准确率的问题,所以此系统可能存在漏报或误报现象,随着分词技术的不断提高,实时信息监测系统的准确率也会相应提高。

参考文献

[1]黄英平,张玲华.基于IIS平滑流式处理的移动流媒体系统[J].电视技术,2012,05:66-69.

[2]秦倩,谢宝娣,顾兆军,等.网络数据包还原和内容分析系统的设计与实现[J].中国民航大学学报,2011,03:24-27.

[3]苟智雄.高速移动网络下用户行为监控系统的设计与实现[D].北京交通大学,2014.

[4]向宇.HTTP协议还原系统的设计与实现[D].华中科技大学,2011.

[4]贾丹,张兴.基于哈希函数的查找算法设计及性能分析[J].鞍山师范学院学报,2015,02:59-62.

[5]李亚超,江静,加羊吉,等.TIP-LAS:一个开源的藏文分词词性标注系统[J].中文信息学报,2015,06:203-207.

相关文章
创新公共服务范文

创新公共服务范文

创新公共服务范文(精选12篇)创新公共服务 第1篇科学技术是第一生产力,科技公共服务平台对国家或区域的技术创新具有巨大的推动作用。科技...

3
2025-10-24
匆匆中学生读后有感

匆匆中学生读后有感

匆匆中学生读后有感(精选9篇)匆匆中学生读后有感 第1篇匆匆读后感500字_读《匆匆》有感当细细地品读完一本名著后,大家心中一定有不少感...

1
2025-10-24
草莓教学范文

草莓教学范文

草莓教学范文(精选17篇)草莓教学 第1篇“风儿轻轻吹,彩蝶翩翩飞,有位小姑娘上山摘草莓,一串串哟红草莓,好像……”优美的歌词,动听...

3
2025-10-24
仓储类课程范文

仓储类课程范文

仓储类课程范文(精选7篇)仓储类课程 第1篇物流产业是复合型产业,发达的物流能加速传统运输、仓储和零售等行业向现代物流服务领域延伸。...

1
2025-10-24
创造性批评:解说与解读

创造性批评:解说与解读

创造性批评:解说与解读(精选8篇)创造性批评:解说与解读 第1篇创造性批评:解说与解读作为诗性文化重要组成部分的审美批评,同文学艺术实践...

2
2025-10-24
初二地理试卷分析

初二地理试卷分析

初二地理试卷分析(精选6篇)初二地理试卷分析 第1篇莲山 课件 w ww.5 YK J.COM 4 初二地理试卷分析二、试题所体现的新课程理念和...

3
2025-10-24
常州市河海中学文明班小结

常州市河海中学文明班小结

常州市河海中学文明班小结(精选2篇)常州市河海中学文明班小结 第1篇常州市河海中学2008~2009学年第一学期 八(1)班创 文 明 班 ...

2
2025-10-24
财务负责人身份证明

财务负责人身份证明

财务负责人身份证明(精选14篇)财务负责人身份证明 第1篇财务负责人身份证明及签字样本兹证明为我公司财务负责人。特此证明。身份证复印...

1
2025-10-24
付费阅读
确认删除?
回到顶部