【计算机网络】分层模型和应用协议

网络分层模型和应用协议

1. 分层模型

1.1 五层网络模型

网络要解决的问题是:两个程序之间如何交换数据

四层?五层?七层?

2. 应用层协议

2.1 URL

URL(uniform resource locator,统一资源定位符)用于定位网络服务

  • 当协议是http端口为80时,端口可以省略
  • 当协议是https端口为443时,端口可以省略
  • schemadomainpath是必填的,其他的根据具体的要求填写

2.2 HTTP

超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个广泛运用于互联网的应用层协议。

该协议包含了传递信息的模式和格式。

2.2.1 传递信息的模式

HTTP使用了一种极为简单的消息传递模式,「请求-响应」模式。发起请求的称之为客户端,接收请求并完成响应的称之为服务器。「请求-响应」完成后,一次交互结束。

2.2.2 传递信息的格式
复制代码
请求行
请求头

请求体

举个例子:

安装插件:REST Clinet

点击 Send Request,发送请求,然后可以查看响应的响应行,响应头和响应体。

分析关键信息:

  1. 常见的请求方法有:
  • GET:获取
  • POST:提交
  • PUT:修改
  • DELETE:删除

关于请求方法的协议原文见 HTTP/1.1规范RFC7231-Chapter4

  1. 请求路径

    path + query

  2. 协议

  3. 请求头

    Host标注了URL地址中的Domain + Port ,比如:Host: www.taobao.com

    Content-type指出客户端给服务器的请求体格式,比如:Content-Type: application/json`。

  4. 请求体

    比如:

    复制代码
    Content-Type: application/x-www-form-urlencoded
    
    loginId=admin&loginPwd=123123
    
    Content-Type: application/json
    
    { "loginId": "admin", "loginPwd": "123123" }
    
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryraPtlntBIqy4X2Ho
    
    ------WebKitFormBoundaryraPtlntBIqy4X2Ho
    Content-Disposition: form-data; name="loginId"
    
    admin
    ------WebKitFormBoundaryraPtlntBIqy4X2Ho
    Content-Disposition: form-data; name="loginPwd"
    
    123456
    ------WebKitFormBoundaryraPtlntBIqy4X2Ho--
  5. 响应码

    这是响应码一般情况,但实际情况还要看公司后端人为决定。

    常见的状态码有:

    1. 200 OK:一切正常。

    2. 301 Moved Permanently:资源已被永久重定向。

      你的请求我收到了,但是你要的东西不在这个地址了,已经永远的把它移动到了一个新的地址,麻烦你请求新的地址,地址我放到了响应头的Location中了

      举个例子:www.douyutv.com 重定向到 www.douyu.com

    3. 302 Found:资源已被临时重定向。

      你的请求我收到了,但是你要的东西不在这个地址了,我临时的把它移动到了一个新的地址,麻烦你取请求新的地址,地址我放到了请求头的Location中了

      举个例子:国内 bing 的重定向(不会还有人不知道自己一直访问的是 cn.bing.com,而不是 www.bing.com,不会吧不会吧~~~)

    4. 304 Not Modified:文档内容未被修改。

      你的请求我收到了,你要的东西跟之前是一样的,没有任何的变化,所以我就不给你结果了,你自己就用以前的吧。啥?你没有缓存以前的内容,关我啥事

    5. 400 Bad Request:语义有误,当前请求无法被服务器理解。

    6. 403 Forbidden:服务器拒绝执行。

    7. 404 Not Found:资源不存在。

    8. 500 Internal Server Error:服务器内部错误。

  6. 响应头 - Content-Type

    Content-Type标注了附带的响应体是什么格式。

    常见的值有:

    1. text/plain: 普通的纯文本
    2. text/html:html文档
    3. text/javascriptapplication/javascript:js代码
    4. text/css:css代码
    5. image/jpeg:jpg图片
    6. attachment:附件
    7. 其他MIME类型
相关推荐
拾光Ծ4 小时前
【Linux网络】深入理解网络层:从IP协议格式,子网划分到NAT与路由机制
linux·网络·网络协议·tcp/ip·计算机网络
2501_9159184120 小时前
iOS 怎么抓包?抓包鹰系统级 网卡 应用层三种方式对比,不越狱抓 iPhone 流量
网络协议·计算机网络·网络安全·ios·adb·https·udp
2501_915921431 天前
抓包鹰抓取系统 App 的流量,从底层读明文
网络协议·计算机网络·网络安全·adb·https·udp
小白说大模型1 天前
从0开始学计算机网络:HTTP 协议的进化史
人工智能·网络协议·计算机网络·http
liulilittle2 天前
UCP 控制协议 [简述]
网络·网络协议·计算机网络·udp·ip·通信
abbgogo3 天前
TCP/IP、OSI 与常见网络协议知识点总结
网络·网络协议·计算机网络
程序猿乐锅3 天前
【计算机网络 | 第三章】数据链路层
网络·网络协议·计算机网络
muyeminyu3 天前
SDUT 计算机网络实验一:局域网双绞线制作与测试(上)
计算机网络·计网·计网实验·sdut
小π军3 天前
计算机网络
服务器·计算机网络
我爱cope3 天前
【计算机网络 | 概述4:分组交换与电路交换:互联网为什么选择了前者?】
计算机网络