11. WS · HTTPDNS · FTP · 邮件

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


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

优快云 新专栏:
https://blog.youkuaiyun.com/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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值