telnet认识及初步应用

是什么

telnet是TCP/IP协议族里的一员,是位于OSI模型的第7层---应用层上的一种协议你可以把它看成一种协议,它也可作为工具在开发中链接端口测试端口测试,更重要的是可以用来远程登录web服务器,类似ssh。telnet是远程控制web服务器的主要方法之一。

windows开启telnet

默认情况下windows的telnet服务是关闭的,需要我们手动去开启

win+r打开cmd
输入control
点击 “程序”
点击“启动或关闭windows功能”
勾选“telnet客户端”
点击“确定”

telnet常用命令

命令可能是缩写。支持的命令为:
c - close 关闭当前连接
d - display 显示操作参数
o - open hostname [port] 连接到主机(默认端口 23)。
q - quit 退出 telnet
set - set 设置选项(键入 ‘set ?’ 获得列表)
sen - send 将字符串发送到服务器
st - status 打印状态信息
u - unset 解除设置选项(键入 ‘set ?’ 获得列表)
?/h - help 打印帮助信息
telnet ip port 连接ip:port

实践

以下是用python写的简单服务器

# Python3.7+
import socket

HOST, PORT = '', 8888 # 初始化了HOST地址和端口,如果不指明地址的话默认本地地址127.0.0.1

listen_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
listen_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
listen_socket.bind((HOST, PORT))
listen_socket.listen(1)
print(f'Serving HTTP on port {PORT} ...')
while True:
    client_connection, client_address = listen_socket.accept()
    request_data = client_connection.recv(1024)
    print(request_data.decode('utf-8'))

    http_response = b"""\
HTTP/1.1 200 OK

Hello, World!
"""
    client_connection.sendall(http_response)
    client_connection.close()

运行这个文件,访问127.0.0.1:8888

这里我是直接在vscode跑的

这里先撇开一下写一下这里浏览器和服务器建立连接的流程,算是目前我对网络的愚见

首先说tcp-http
在进行http报文的交互前首先要建立TCP连接,相当于打电话前先搭好电话线
TCP先进行3次握手:
1、喂?听到我说话了吗(浏览器)
2、听到了(服务器)
3、那我开始讲事情了
接着进行http报文的交互
1、发送http请求命令,就是报文的第一行那些(浏览器)
2、发送请求头,host之类的那些(浏览器)
3、若是post方式有请求体会继续提交请求体(浏览器)
4、发送响应状态码(服务器)
5、响应头(服务器)
6、响应内容
7、web服务器关闭TCP连接,除非设置了Connection:keep-alive

以上内容还是很好理解的,其实在建立TCP连接建立前服务器和客户端都使用了所谓的套接字(socket)

telnet连接127.0.0.1 8888

$ telnet localhost 8888
Trying 127.0.0.1 …
Connected to localhost.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MUNG东隅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值