11. WS · HTTPDNS · FTP · 邮件

网络协议从入门到底层原理


提示:本系列文章已经修订完毕,修改了纰漏,优化了文章结构。为了获得更好的阅读体验,请查看以下新专栏或新站点

CSDN 新专栏:
https://blog.csdn.net/keeppromise/category_12489629.html

我的个人博客(Github Page):
https://blog.lens-shrine.top/categories/学习记录:网络协议/

WebSocket

Socket 是一套网络编程API,利用它可以建立网络连接,一般都是操作系统底层实现的。
WebSocket 是一个网络协议。

图01


WebSocket,是基于TCP的支持全双工通信的应用层协议

  • 在2011年由IETF标准化为 RFC 6455,后由 RFC 7936 补充规范
  • 客户端、服务器,任何一方都可以主动发消息给对方

WebSocket 的应用场景很多
社交订阅、股票基金报价、体育实况更新、多媒体聊天、多玩家游戏等

图02

建立连接

图03
图04

GUID
SHA-1摘要计算
Hex To Base64编码

WebService

WebService,译为:Web服务,是一种跨编程语言和跨操作系统的远程调用技术标准

WebService使用场景举例:

  • 天气预报、手机归属地查询、航班信息查询、物流信息查询等
  • 比如天气预报,是气象局把自己的服务以WebService形式暴露出来,让第三方程序可以调用这些服务功能
  • http://www.webxml.com.cn/zh_cn/index.aspx

事实上,WebService完全可以用普通的 Web API 取代(比如HTTP + JSON)
现在很多企业的开放平台都是直接采用Web API

核心概念(SOAP,WSDL)

图05

http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl

RESTful

REST的全称是:REpresentational State Transfer
译为:表现层状态转移

REST是一种互联网软件架构设计风格

  • 定义了一组用于创建Web服务的约束
  • 符合REST架构的Web服务,称为 RESTful Web服务

实践建议

  1. URL中使用名词(建议用复数形式),不使用动词
    推荐:/users、/users/6
    不推荐:listsers,/getser?id=6,/uer/list,/user/get?id=6

  2. 使用 HTTP的请求方法 表达动作
    图06

  3. 一个资源连接到其他资源,使用子资源的形式
    GET /users/6/cars/8
    POST /users/8/cars

  4. API 版本化
    mj.com/v1/users
    mj.com/v2/users/66

  5. 返回 JSON格式的数据

  6. 发生错误时,不要返回 200状态码

HTTPDNS

图07

HTTPDNS的使用

FTP

FTP(File Transport Protocol),文件传输协议,RFC 959 定义了此规范,是基于TCP的应用层协议

RFC 1738 中有定义,FTP的URL格式为:ftp://[user[:password]@]host[:port]/url-path

图08

连接模式

图09

主动模式

图10

被动模式

图11

邮件相关的协议(SMTP、POP、IMAP)

图12

收发邮件的过程

图13

POP vs IMAP

图14

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值