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

网络分层模型和应用协议

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类型
相关推荐
边啵儿1 小时前
如何确定某个路由器的路由表?(计算机网络)
网络·计算机网络
Amo Xiang2 小时前
计算机网络第3章(上):数据链路层全解析——组帧、差错控制与信道效率
计算机网络·数据链路层
安全系统学习7 小时前
网络安全之框架安全漏洞分析
开发语言·python·计算机网络·web安全·网络安全
ArabySide7 小时前
【JavaScript】 HTTP Cookie 核心知识梳理与常用的封装实现
javascript·计算机网络·http·web
DjangoJason8 小时前
计算机网络 : 传输层协议UDP与TCP
tcp/ip·计算机网络·udp
勤奋的小王同学~1 天前
计算机网络:认证和授权 DNS 域名解析过程(如何转换为ip地址) http无状态 5**服务端错误相关的响应状态码 tcp某次握手丢失会有什么现象?
运维·服务器·计算机网络
爆更小小刘1 天前
3.3.1_2 检错编码(循环冗余校验码)
计算机网络
黎茗Dawn2 天前
6.计算机网络核心知识点精要手册
计算机网络
cleble3 天前
(转)什么是DockerCompose?它有什么作用?
计算机网络
IT葛大侠3 天前
OSPF域内路由
运维·网络·计算机网络