随笔分类 - 网络
摘要:想要充分了解HTTP长连接,需要首先知道一些基本概念:TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次握手的,而释放则需要4次握手,所以说每个连接的建立都是需要资源消耗和时间消耗的。 经典的三次握手示意图: 经典的四次握手关闭图:TCP短连接 我们模拟一下TCP短连接的情况,client向server发起连接请求,server接到请求,然后双方建立连接。client向server 发送消息,server回应client,然后一次读写就完成了,这时候双
阅读全文
摘要:当两台主机采用 TCP 协议进行通信时,在交换数据前将建立连接。通信完成后,将关闭会话并终止连接。连接和会话机制保障了TCP 的可靠性功能。请参见图中建立并终止 TCP 连接的步骤。主机将跟踪会话过程中的每个数据段,并使用 TCP 报头中的信息了解每台主机所接收到的数据。每个连接都代表两股单向通信数据流或者会话。若要建立连接,主机应执行三次握手。TCP 报头中的控制位指出了连接的进度和状态。三次握手:1.确认目的设备存在于网络上;2.确认目的设备有活动的服务,并且正在源客户端要使用的目的端口号上接受请求;3.通知目的设备源客户端想要在该端口号上建立通信会话。在 TCP 连接中,充当客户端的主机
阅读全文
摘要:链接:http://wiki.nginx.org/HttpUpstreamKeepaliveModule今天看了一些代码:upstream b_memc2 { server 192.168.10.253:11211; keepalive 30 single;}看见KEEPALIVE的时候,上网上搜索,都是关于长连接的。其实在这里是最多连接数量。比如上面的代码,意思是:链接253的时候,最多保持30个长链接。为什么使用长连接?什么是长连接,移步:http://baike.baidu.com/view/2831907.htm
阅读全文
摘要:一、概述顾名思义,tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。[root@mail ~]# tcpdump -vvtcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes13:43:13.225632 IP (tos 0x10, ttl 64, id 280, offset 0, flags [DF], proto: TCP (6), length: 172) 1.
阅读全文
摘要:以前的章节已经介绍过了FORM传输表单的形式,但是在使用过程中仍然有很多问题,这里再向大家详细介绍一下。Multipart/form-data是上传文件的一种方式。Multipart/form-data其实就是浏览器用表单上传文件的方式。最常见的情境是:在写邮件时,向邮件后添加附件,附件通常使用表单添加,也就是用multipart/form-data格式上传到服务器。具体的步骤如下:1、客户端和服务器建立链接(TCP协议)2、客户端可以向服务器发送数据3、客户端按照符合Multipart/form-data的格式发送数据POST /top/router/rest?timestamp=2013-
阅读全文
摘要:服务器返回的消息服务器返回的HTTP消息也分为消息头和消息体两部分。前面连载的第二篇里已经介绍了返回消息中常见返回代码的含义。对于非正常的返回代码的处理比较简单,只要照着要求去做就好了,而对于正常的返回代码(200),其处理方式就多种多样了。1、Content-TypeContent-Type是返回消息中非常重要的内容,它标识出这个返回内容的类型,其值为“主类型/子类型”的格式,例如最常见的就是text/html,它的意思是说返回的内容是文本类型,这个文本又是HTML格式的。原则上浏览器会根据Content-Type来决定如何显示返回的消息体内容。常见的内容类型有:1 text/html HT
阅读全文
摘要:客户端发送的内容这一次主要来观察HTTP消息头中客户端的请求,从中找到一些有意思的内容。1、HTTP_REFERER写两个简单的网页:a.htm:<a href=b.htm>to page b</a>b.htm:haha内容很简单,就是网页A中有一个到B的链接。把它们放到IIS上,并访问网页A,从中再点击到B的链接,于是看到了B页的“haha”。那么这两次请求有什么不同吗?观察它们所发送的HTTP消息头,最明显的区别就是访问B页时比访问A页时多了一行:Referer:http://localhost/a.htm这一行就表示,用户要访问的B页是从A页链接过来的。服务器端要
阅读全文
摘要:常见的HTTP返回码上一篇文章里我简要的说了说HTTP消息头的格式,注意到在服务器返回的HTTP消息头里有一个“HTTP/1.1 200 OK”,这里的200是HTTP规定的返回代码,表示请求已经被正常处理完成。浏览器通过这个返回代码就可以知道服务器对所发请求的处理情况是什么,每一种返回代码都有自己的含义。这里列举几种常见的返回码。1 403 Access Forbidden如果我们试图请求服务器上一个文件夹,而在WEB服务器上这个文件夹并没有允许对这个文件夹列目录的话,就会返回这个代码。一个完整的403回复可能是这样的:(IIS5.1)1 HTTP/1.1 403 Access Forbid
阅读全文
摘要:但凡搞WEB开发的人都离不开HTTP(超文本传输协议),而要了解HTTP,除了HTML本身以外,还有一部分不可忽视的就是HTTP消息头。做过Socket编程的人都知道,当我们设计一个通信协议时,“消息头/消息体”的分割方式是很常用的,消息头告诉对方这个消息是干什么的,消息体告诉对方怎么干。HTTP传输的消息也是这样规定的,每一个HTTP包都分为HTTP头和HTTP体两部分,后者是可选的,而前者是必须的。每当我们打开一个网页,在上面点击右键,选择“查看源文件”,这时看到的HTML代码就是HTTP的消息体,那么消息头又在哪呢?IE浏览器不让我们看到这部分,但我们可以通过截取数据包等方法看到它。下面
阅读全文