.NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记
2.1 引入
- http协议
- web server && web application framework
- .net 与 .net core asp .net core
- web api 示例
CS:客户端-服务器
BS:浏览器-服务器
2.1.1 http协议
- 请求过程
- 消息结构
- 请求方法
- 状态码
- header
请求过程
- 1.URL解析
- 2.DNS查询
- 3.TCP连接
- 4.处理请求
- 5.接受响应
- 6.渲染页面
在浏览器输入 URL 回车之后发生了什么:
https://juejin.im/post/6844903922084085773
消息结构
了解HTTP请求和响应结构:
https://juejin.im/post/6844903843277307917
请求方法
- GET 获取
- POST 创建
- PUT 替换(资源整体替换)
- PATCH 修改(资源段落性修改)
- DELETE 删除
- OPTIONS
状态码
- 200
- 300 已转移地址/永久移动(response redirect)
- 401 未认证
- 403 未授权
- 404 未找到文件
- 500 内部服务错误,服务器不知道如何处理的错误
HTTP协议详解:
https://www.cnblogs.com/tankxiao/archive/2012/02/13/2342672.html
2.1.2 web server && web application framework
web server
- IIS
- Nginx
- Apache
webapplication framework
- asp .net
- asp .net core
- springboot
- express

基本功能
- url映射
- 安全性(认证、授权等)
- 网页模板系统 razer pages
- 数据库关系与映射(ORM)
扩展功能
- 依赖注入
- 配置
- 日志
2.1.3 .net 与 .net core asp .net core

.net 是一个开发者平台的统称,用它可以构建多种类型的应用程序
.net 平台下的开发语言:c#/F#/Visual Basic
平台标准 .NET Standard:
https://dotnet.microsoft.com/platform/dotnet-standard

平台实现
- .net core: 跨平台方案
- .net framework: web sites, services, apps on windows
- Xamarin/mono: .net for mobile
每个平台由以下组件构成:
一个或多个运行时。示例:CLR 用于 .NET Framework,CoreCLR 和 CoreRT 用于 .NET Core
实现 .NET Standard 并且可实现其他 API 的类库。示例:.NET Framework 基类库、.NET Core 基类库
可选择包含一个或多个应用程序框架。示例:ASP .NET、Windows 窗体和 Windows Presentation Foundation (WPF) 包含在 .NET Framework 和 .NET Core 中
可包含开发工具。某些开发工具在多个实现之间共享
.NET 体系结构
https://docs.microsoft.com/zh-cn/dotnet/standard/components
.NET Core 平台
coreclr:
https://github.com/dotnet/runtime
包含 garbage collector, JIT compiler, primitive data types and low-level classes
asp .net core
.net core 平台下的一个 web 应用框架:
https://github.com/dotnet/aspnetcore
Extensions(用于控制台和 web)
ASP .NET CORE (Web Application Framework)
Entity Framework Core (ORM 框架)
2.1.4 web api 示例
安装 SDK
https://dotnet.microsoft.com/download/dotnet-core/3.1
新建 web api 示例
dotnet new webapi -n HelloApi
启动程序
dotnet run
课程链接
https://appsqsyiqlk5791.h5.xiaoeknow.com/v1/course/video/v_5f39bdb8e4b01187873136cf?type=2

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
欢迎转载、使用、重新发布,但务必保留文章署名 郑子铭 (包含链接: http://www.cnblogs.com/MingsonZheng/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
如有任何疑问,请与我联系 (MingsonZheng@outlook.com) 。
.NET 云原生架构师训练营(模块二 基础巩固 引入)--学习笔记的更多相关文章
- .NET 云原生架构师训练营(建立系统观)--学习笔记
目录 目标 ASP .NET Core 什么是系统 什么是系统思维 系统分解 什么是复杂系统 作业 目标 通过整体定义去认识系统 通过分解去简化对系统的认识 ASP .NET Core ASP .NE ...
- .NET 云原生架构师训练营(对象过程建模)--学习笔记
目录 UML OPM OPM优化 UML 1997年发布UML标准 主要域 视图 图 主要概念 结构 静态视图 类图 类.关联.泛化.依赖关系.实现.接口 用例视图 用例图 用例.参与者.关联.扩展. ...
- .NET 云原生架构师训练营(设计原则&&设计模式)--学习笔记
目录 设计原则 设计模式 设计原则 DRY (Don't repeat yourself 不要重复) KISS (Keep it stupid simple 简单到傻子都能看懂) YAGNI (You ...
- .NET 云原生架构师训练营(责任链模式)--学习笔记
目录 责任链模式 源码 责任链模式 职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无需关心请求的处理细节和请求的传递,所以职责链将请求的发送者和请求的处理者解耦了 何时使用:在处理 ...
- .NET 云原生架构师训练营(模块一 架构师与云原生)--学习笔记
目录 什么是软件架构 软件架构的基本思路 单体向分布式演进.云原生.技术中台 1.1 什么是软件架构 1.1.1 什么是架构? Software architecture = {Elements, F ...
- .NET 云原生架构师训练营(权限系统 RGCA 架构设计)--学习笔记
目录 项目核心内容 实战目标 RGCA 四步架构法 项目核心内容 无代码埋点实现对所有 API Action 访问控制管理 对 EF Core 实体新增.删除.字段级读写控制管理 与 Identity ...
- .NET 云原生架构师训练营(模块二 基础巩固 敏捷开发)--学习笔记
2.7.1 敏捷开发 敏捷介绍 敏捷的起源 敏捷软件开发宣言 敏捷开发十二原则 生命周期对比 敏捷开发的特点 敏捷的发展 敏捷的核心 敏捷的起源 2001年,17个老头子在一起一边滑雪,一边讨论工作, ...
- .NET 云原生架构师训练营(模块二 基础巩固 MongoDB 介绍和基础)--学习笔记
2.5.1 MongoDB -- 介绍 mysql vs mongo 快速开始 mysql vs mongo 对比 mysql mongo 数据存储 table 二维表结构,需要预先定义结构 json ...
- .NET 云原生架构师训练营(模块二 基础巩固 MongoDB 问答系统)--学习笔记
2.5.6 MongoDB -- 问答系统 MongoDB 数据库设计 API 实现概述 MongoDB 数据库设计 设计优化 内嵌(mongo)还是引用(mysql) 数据一致性 范式:将数据分散到 ...
- .NET 云原生架构师训练营(模块二 基础巩固 Scrum 团队)--学习笔记
2.7.3 Scrum 团队 理想的环境 团队章程 如何组建 Scrum 团队 产品待办事项列表 用户故事 敏捷开发流程 理想的环境 5-9人 100% 跨职能 在一起 自组织 自组织 目标 授权 沟 ...
随机推荐
- 第1篇 numpy 语法
import numpy as np A = np.array([ [1, 2, 3, 4], [5, 6, 7, 8], ], dtype=int) # dtype指定数据类型int float p ...
- 如何取消VSCODE文件夹折叠
1.问题 如图所示,文件夹折叠在一起,导致我无法在父文件夹中新建一个文件夹,而是只能在子文件夹中新建文件夹 2.解决 原因:文件夹以紧凑方式呈现,取消即可 1. 打开设置,在里面搜索Explorer: ...
- [转帖]SQL Server 中如何移动tempdb到新的位置
https://www.cnblogs.com/OpenCoder/p/10322904.html 操作步骤:1.检查tempdb的逻辑名字和它的存在位置.可以使用下面语句: SELECT name, ...
- [转帖]nginx中的if和else语法
https://www.dyxmq.cn/it/nginx/nginx-if.html nginx支持if语法,语法和平常的代码格式差不多: 1 2 3 if ($xxx = xxx) { ...
- [转帖]linux下查看内存频率,内核函数,cpu频率
https://www.cnblogs.com/lovesKey/p/10900501.html 查看CPU: cat /proc/cpuinfo # 总核数 = 物理CPU个数 X 每颗物理CPU的 ...
- [转帖]SSH交互式脚本StrictHostKeyChecking选项 benchmode=yes
https://www.cnblogs.com/klb561/p/11013774.html SSH 公钥检查是一个重要的安全机制,可以防范中间人劫持等黑客攻击.但是在特定情况下,严格的 SSH 公钥 ...
- [转帖]麒麟V10 arm 环境配置yum源
# 进入yum源文件目录 cd /etc/yum.repos.d # 备份yum源文件 cp kylin_aarch64.repo kylin_aarch64.repo.bak # 修改源文件内容 v ...
- [转帖]Nginx动静分离详解以及配置
https://developer.aliyun.com/article/885602?spm=a2c6h.24874632.expert-profile.314.7c46cfe9h5DxWK 简介: ...
- [转帖] shell管道咋堵住了
https://www.cnblogs.com/codelogs/p/16060378.html 背景# 起因是这样的,我们想开发一个小脚本,当cpu使用率过高时,使用jstack将java的线程栈保 ...
- [转贴]Kubernetes之修改NodePort对外映射端口范围
https://www.cnblogs.com/minseo/p/12606326.html k8s默认使用NodePort对外映射端口范围是30000-50000可以通过修改kube-apiserv ...