常用协议HTTP、HTTPS、TCP、UDP及SOCKET - Go语言中文社区

常用协议HTTP、HTTPS、TCP、UDP及SOCKET


1.HTTP(Hypertext Transfer Protocol)超文本传输协议(80)

1).请求报文:请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
2).应答报文:状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体
3).访问过程

图片描述

4).状态码
    A).1xx:指示信息--表示请求已接收,继续处理
        100——客户必须继续发出请求
        101——客户要求服务器根据请求转换HTTP协议版本
    B).2xx:成功--表示请求已被成功接收、理解、接受
        200——请求成功
        201——提示知道新文件的URL
        202——接受和处理、但处理未完成
        203——返回信息不确定或不完整
        204——请求收到,但返回信息为空
        205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件
        206——服务器已经完成了部分用户的GET请求
    C).3xx:重定向--要完成请求必须进行更进一步的操作
        300——请求的资源可在多处得到
        301——删除请求数据
        302——在其他地址发现了请求数据
        303——建议客户访问其他URL或访问方式
        304——客户端已经执行了GET,但文件未变化
        305——请求的资源必须从服务器指定的地址得到
        306——前一版本HTTP中使用的代码,现行版本中不再使用
        307——申明请求的资源临时性删除
    D).4xx:客户端错误--请求有语法错误或请求无法实现
        400——错误请求,如语法错误
        401——请求授权失败
        402——保留有效ChargeTo头响应
        403——请求不允许
        404——没有发现文件、查询或URl
        405——用户在Request-Line字段定义的方法不允许
        406——根据用户发送的Accept拖,请求资源不可访问
        407——类似401,用户必须首先在代理服务器上得到授权
        408——客户端没有在用户指定的饿时间内完成请求
        409——对当前资源状态,请求不能完成
        410——服务器上不再有此资源且无进一步的参考地址
        411——服务器拒绝用户定义的Content-Length属性请求
        412——一个或多个请求头字段在当前请求中错误
        413——请求的资源大于服务器允许的大小
        414——请求的资源URL长于服务器允许的长度
        415——请求资源不支持请求项目格式
        416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段
        417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求
    E).5xx:服务器端错误--服务器未能实现合法的请求
        500——服务器产生内部错误
        501——服务器不支持请求的函数
        502——服务器暂时不可用,有时是为了防止发生系统过载
        503——服务器过载或暂停维修
        504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长
        505——服务器不支持或拒绝支请求头中指定的HTTP版本      

2.HTTPS(Hypertext Transfer Protocol Secure)超文本传输安全协议(443)

1).HTTP+SSL(Netscape的安全套接层)
    a).SSL((Secure Sockets Layer)        安全套接层(40-128)
    b).TLS(Transport Layer Security)     传输层安全
2).数据加密(SSL);身份认证(CA证书)

3.TCP(Transmission Control Protocol)传输控制协议

1).面向连接
2).可靠传输的情况, 应用于文件传输, 重要状态更新等场景
3).传输大量数据
4).传输慢

4.UDP(User Data Protocol)用户数据协议

1).面向非连接
2).高速传输和实时性要求较高的通信领域(可靠性需要应用层控制) 
3).传输少量数据
4).传输快

5.Socket(程序通过一个双向的通信连接实现数据的交换,连接的一端称为一个socket)(API)

1).socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口    
2).连接过程:服务器监听,客户端请求,连接确认
3).优势与劣势
    A).优势:
        a).传输数据为字节级,传输数据可自定义,数据量小
        b).传输数据时间短,性能高
        c).适合于客户端和服务器端之间信息实时交互        
        d).可以加密,数据安全性强
    B).劣势:
        a).需对传输的数据进行解析,转化成应用级的数据 
        b).相对于HTTP协议传输,增加了开发量
        c).对开发人员的开发水平要求高    
4).基于Socket传输的特点其适用于对传输速度,安全性,实时交互,费用等要求高的应用中,如网络游戏,手机应用,银行内部交互等

6.TCP/IP(TCP/IP Protocol Suite)TCP/IP协议族

1).四层模型
    a).应用层        有FTP、HTTP、TELNET、SMTP、DNS等协议
    b).传输层        有TCP协议与UDP协议
    c).网络层        有IP协议、ICMP协议、ARP(地址解析)协议、RARP(反向地址解析)协议和BOOTP协议
    d).网络接口层     有FDDI、Ethernet、Arpanet、PDN、SLIP、PPP、IEEE802.1A、IEEE802.2-IEEE802.11
2).五层模型
    a).应用层        有FTP、HTTP、TELNET、SMTP、DNS等协议
    b).传输层        有TCP协议与UDP协议
    c).网络层        有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议
    d).数据链路层     有FDDI、Ethernet、Arpanet、PDN、SLIP、PPP
    e).物理层        有IEEE802.1A、IEEE802.2- IEEE802.11等协议

7.OSI(Open Systems Interconnection)开发系统互联(七层模型)

1).应用层(为应用程序提供服务)                     有FTP、HTTP、TELNET、SMTP、DNS等协议
2).表示层(数据格式转化,数据加密、解密)
3).会话层(建立、管理和维护会话)
4).传输层(建立、管理和维护端到端的连接)            有TCP协议与UDP协议
5).网络层(IP选址及路由选择)                       有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议
6).数据链路层(提供介质访问和链路管理)              有FDDI、Ethernet、Arpanet、PDN、SLIP、PPP
7).物理层(物理层)                                有IEEE802.1A、IEEE802.2- IEEE802.11等协议

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_34137799/article/details/88705818
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-06 22:27:51
  • 阅读 ( 1012 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢