深圳建设注册中心网站程序开发过程有哪四个步骤
- 作者: 五速梦信息网
- 时间: 2026年04月20日 09:21
当前位置: 首页 > news >正文
深圳建设注册中心网站,程序开发过程有哪四个步骤,十大品牌网排名,常宁网站建设常宁网站建设你想知道我们请求一个url的时候#xff0c;握手和请求资源分别占用多长时间么#xff1f;今天我们使用python写个小案例来看看吧。 项目展示
打开项目#xff0c;修改hosts、port、methods以及url的变量#xff0c;即可运行python程序便可获得该页面的详细信息的时间… 你想知道我们请求一个url的时候握手和请求资源分别占用多长时间么今天我们使用python写个小案例来看看吧。 项目展示
打开项目修改hosts、port、methods以及url的变量即可运行python程序便可获得该页面的详细信息的时间其中包括TCP/IP三次握手时间 以及 请求接口耗时最后是 总的耗时。
如何获得握手时间
在获取握手时间的时候不能使用http库例如: requests因为它默认会进行tcp/ip三次握手而后再进行资源请求所以我们要使用socket来做这个需求。
在python中socket提供了一种跨平台的网络通信接口可以用它来创建各种类型的网络连接。
例如代码如下:
import socket
s socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((127.0.0.1, 8080))
在上面的代码中我们先导入socket库而后使用socket.socket()创建一个socket句柄而中间的参数分别代表的意思为 socket.AF_INET 指定IPv4协议。 socket.SOCK_STREAM: 指定使用TCP流式套接字类型。
而s.connect则开始连接服务器其参数类型为元组类型参数值为远程主机名 和 远程端口。
如上代码当远程服务器连不上的时候或者其他异常的时候该代码会抛异常若没有异常则证明端口通的。
我们仅需要在此之前和之后都拉一下当前时间戳就可以计算出握手所耗费的时间例如
import socket
import time
try:startTime time.time()s socket.socket(socket.AF_INET, socket.SOCK_STREAM)s.connect((127.0.0.1, 8080))endTime time.time()print(runtimes: , endTime-startTime)
except Exception as e:print(捕获异常 , e)
若没有抛错我们即可获得握手时间。
如何获得请求时间
握手成功后我们就可以向该服务器发送http报文了注意最简单报文的格式是:
请求方法 请求路由 版本号
请求头主机名
空行
例如:
GET / HTTP/1.1
Host: 127.0.0.1:8080
如果我们不添加Host请求头则会抛错: HTTP/1.1 400 Bad Request: missing required Host header。
在python中我们直接使用s.send()函数即可发送请求例如:
s socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((127.0.0.1, 8080))
s.send(bGET / HTTP/1.1\r\nHost: 127.0.0.1:8080\r\n\r\n)
上述代码中\r\n是换行的意思也称之为CRLF注意最后的2个\r\n是有一个空行来标志http请求头的结束。
一般来说我们请求接口后会读取服务器返回来的状态码以便开发验证是否是成功的。
这里可以使用s.recv()函数来读取服务器传回来的信息例如读取从服务器返回的15个字节s.recv(15)。
我们可以参考计算握手时间的方法来计算一下资源请求的时间代码如下
import socket
import time
s socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((127.0.0.1, 8080))startTime time.time()
s.send(bGET / HTTP/1.1\r\nHost: 127.0.0.1:8080\r\n\r\n)
recv_data str(s.recv(15))
endTime time.time()
print(runtimes: , endTime - startTime,接口返回状态码: , recv_data.split( )[1])
如果远程主机和远程端口都正常的话我们大概会得到如下的信息:
善用装饰器
我们计算握手时间和计算资源请求时间都是相同的代码因为计算的功能不同所以我们需要被迫写2次这个时候就可以使用装饰器来把这个额外非核心功能给抽离出来而将计算握手和计算资源请求都给封装为函数而后通过函数来调用装饰器就可以获取2种请求时间了。
我们先将装饰器抽离出来
def funcRunTimes(func):def wrapper(*args):startTime time.time()result func(*args)endTime time.time()execTime endTime - startTimereturn (result,execTime)return wrapper
我们在funcRunTimes中直接返回wrapper函数而在wrapper函数中定义开始时间和结束时间在二者的中间执行函数func最后将func的结果以及函数执行的时间封装为一个元组进行返回。
此时我们可以封装函数了例如我们想获取握手的时间我们可以这样写:
funcRunTimes
def shakeHands(hosts,port):s socket.socket(socket.AF_INET, socket.SOCK_STREAM)try:s.connect((hosts, port))return sexcept Exception as e:print(e)return None
如果该远程主机可以连上我们直接返回socket句柄若连接不上直接打印错误返回None。
调用该函数的是我们接收返回值即可
shakeInfo shakeHands(hosts,port)
注意shakeInfo是一个元组有2个元组第一个是socket句柄第二个是执行该函数所需要的时间。
我们再将资源请求函数封装一下就可以完成这个项目了。
总结
我们使用python socket连接服务器以及发送http报文再计算2个函数所执行的时间便可以获取到握手和资源请求的时间了最后再将获取时间的函数提取出来封装为装饰器供函数调用即可得到函数的执行时间了。
如果你对Python感兴趣想要学习python这里给大家分享一份Python全套学习资料都是我自己学习时整理的希望可以帮到你一起加油
有需要的小伙伴可以点击下方链接免费领取或者V扫描下方二维码免费领取 Python全套学习资料 1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线你可以按照上面的知识点去找对应的学习资源保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频有了这些视频轻轻松松上手Python~
③练习题
每节视频课后都有对应的练习题哦可以检验学习成果哈哈
2️⃣国内外Python书籍、文档
① 文档和书籍资料 3️⃣Python工具包项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了每个都有详细的安装教程保证你可以安装成功哦
②Python实战案例
光学理论是没用的要学会跟着一起敲代码动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。100实战案例源码等你来拿
③Python小游戏源码
如果觉得上面的实战案例有点枯燥可以试试自己用Python编写小游戏让你的学习过程中增添一点趣味
4️⃣Python面试题
我们学会了Python之后有了技能就可以出去找工作啦下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂并且有阿里大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。
上述所有资料 ⚡️ 朋友们如果有需要的可以扫描下方二维码免费领取
- 上一篇: 深圳建设网站需要多少钱仿新浪全站网站源码
- 下一篇: 深圳建网站seo做视频的网站带模板
相关文章
-
深圳建设网站需要多少钱仿新浪全站网站源码
深圳建设网站需要多少钱仿新浪全站网站源码
- 技术栈
- 2026年04月20日
-
深圳建设网站价格深圳seo公司排名
深圳建设网站价格深圳seo公司排名
- 技术栈
- 2026年04月20日
-
深圳建设外贸网站四川成都房产网
深圳建设外贸网站四川成都房产网
- 技术栈
- 2026年04月20日
-
深圳建网站seo做视频的网站带模板
深圳建网站seo做视频的网站带模板
- 技术栈
- 2026年04月20日
-
深圳建网站多少钱小说类网站程序
深圳建网站多少钱小说类网站程序
- 技术栈
- 2026年04月20日
-
深圳建网站多少钱一年vantage wordpress
深圳建网站多少钱一年vantage wordpress
- 技术栈
- 2026年04月20日
