Skip to content

Commit ce09df6

Browse files
committed
modify details
1 parent d19c14e commit ce09df6

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

HTTP_Server_Pressure_Test_Detail/HTTPClientDemoMultiAsync.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ def __init__(self, host):
2929
Connection: close
3030
3131
'''
32-
# self.buffer = send_data_alive
33-
self.buffer = send_data_close
32+
self.buffer = send_data_alive
33+
# self.buffer = send_data_close
3434

3535
def handle_connect(self):
3636
pass
@@ -44,8 +44,7 @@ def handle_read(self):
4444
pass
4545
if len(data) == 192:
4646
self.close()
47-
# print len(data)
48-
# print repr(data)
47+
4948

5049
def writable(self):
5150
return (len(self.buffer) > 0)

HTTP_Server_Pressure_Test_Detail/HTTPServerPressureTestDetail.md

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ TCP协议的运行大致可分为三个阶段:链接创建、数据传输和
3939

4040
`提问:ip地址"0.0.0.0"代表的是什么意思?"127.0.0.1"呢?`
4141

42-
通过先执行Server Demo,可以看出TCP的交互是先有一个以绑定好指定端口的socket在等待新链接的到来;接着运行的ClientDemo,客户端(client)的socket连向刚被监听的端口,当完成链接创建的“三次握手”之后,client socket的connect函数便完成并返回,下一步就可以进行数据的传输;client先发送给server数据包,然后server返回该数据包后并将其内容打印出来,然后双方断开链接
42+
通过先执行Server Demo,可以看出TCP的交互是先有一个以绑定好指定端口的socket在等待新链接的到来;接着运行的Client Demo,客户端(client)的socket连向刚被监听的端口,当完成链接创建的“三次握手”之后,client socket的connect函数便完成并返回,下一步就可以进行数据的传输;然后client先发送给server数据包,server返回该数据包后并将其内容打印出来,双方结束通信断开链接
4343

4444
![all_console_output](./all_console_output.png "all console output")
4545

4646
<h3 id="data">数据包</h3>
4747

48-
从上面打印出的log看,不足以让我们详细的了解C/S之间的交互过程,可以通过借助[网络包分析工具](https://www.wireshark.org/)来了解通信过程中TCP协议发送了哪些数据包。
48+
从上面打印出的log看,不足以让我们详细地了解C/S之间的交互过程,可以通过借助[网络包分析工具](https://www.wireshark.org/)来了解通信过程中TCP协议发送了哪些数据包。
4949

5050
![all_packet](./TCP_all_packet.png "all packet")
5151
* [数据包文件](./TCP_all_packet.pcapng)
@@ -76,7 +76,7 @@ TCP链接是全双工的,即表示数据在两个方向上能同时传递数
7676

7777
通过抓取访问本地启动的**SimpleHTTPServer**,我们来了解下位于应用层的HTTP协议是如何通过TCP协议来进行通信的。
7878

79-
`Tip: SimpleHTTPServer可通过命令“python -m SimpleHTTPServer”启动,项目目录下已有一份已抓取好的网络包(001_1_HTTP_content.pcapng)`
79+
`Tip: SimpleHTTPServer可通过命令“python -m SimpleHTTPServer”启动,项目目录下已有一份已抓取好的网络包(HTTP_content.pcapng)`
8080

8181
![HTTP_content](./HTTP_content.png "HTTP content")
8282
* [HTTPClientDemo.py](./HTTPClientDemo.py)
@@ -99,7 +99,7 @@ Connection: keep-alive
9999

100100
* [HTTPClientDemoMultiAsync.py](./HTTPClientDemoMultiAsync.py)(并发Demo)
101101

102-
在笔者的机器上,通过执行该并发程序,发起500个并发请求至服务器,响应正常,这样就可以确认我们的测试服务器是没有问题的,能负载住这样的并发压力(笔者并不是一开始就选中Nginx的,曾试用其他HTTP服务器,比如python自带的SimpleHTTPServer,但效果不理想,经过多次挑选才找到的Nginx,要验证问题,多个方案相互比较也是很重要的)。
102+
在笔者的机器上,通过执行该并发程序,发起500个并发请求至服务器,响应正常,这样就可以确认我们的测试服务器是没有问题的,能负载住这样的并发压力(笔者并不是一开始就选中Nginx的,曾试用过其他HTTP服务器,比如python自带的SimpleHTTPServer,但效果不理想,经过多次挑选才找到的Nginx,要验证问题,多个方案相互比较也是很重要的)。
103103

104104
但当反复执行这个并发程序多次的时候,出现了异常报错的信息。
105105

@@ -166,9 +166,11 @@ Connection: close
166166
* wiki
167167
* 其他网络上的资料
168168

169+
<!--
169170
<h2 id="last">写在最后</h2>
170171
171172
在结束的地方,想问下读者是否已经掌握文章的主题?
172173
173-
笔者认为没有,因为仅仅通过阅读一篇文章,仅仅只能知道有这么一回事;即便跟着文章的步伐重现所有流程,也只能是知道文章所说的是怎么一回事,当然,一般文章的目的也是如此。但是,读者不知道的是,作者一开始是怎么发现一个问题,如何进行问题的定位,还有解决这个问题,最后,又是如何将这个问题展示给其他人,展示过程中各种细节的选择。而这些,才是一个学习的过程,实践起来,就是一个从读者转变为作者的过程,尽管本文瑕疵偏多,但对笔者自身来说,也是收获满满。
174+
笔者认为没有,因为仅仅通过阅读一篇文章,仅仅只能知道有这么一回事;即便跟着文章的步伐重现所有流程,也只能是知道文章所说的是怎么一回事,当然,一般文章的目的也是如此。但是,读者不知道的是,作者一开始是怎么发现一个问题,如何进行问题的定位,还有解决这个问题,最后,又是如何将这个问题展示给其他人,展示过程中各种细节的选择。而这些,才是一个学习的过程,实践起来,就是一个从读者转变为作者的过程,尽管本文瑕疵偏多,但对笔者自身来说,也是收获满满。
175+
-->
174176

0 commit comments

Comments
 (0)