Designing Evolvable Web API with ASP.NET 随便读,随便记 “The Internet,the World Wide Web,and HTTP”——HTTP
HTTP
我们将只聚焦在于与创建 Web APIs有关的部分。
HTTP 是信息系统中的一个应用层协议,是Web的支柱。 其原先由 Berners-Lee,
Roy Fielding 和 Henrik Frystyk Nielsen 三位计算机科学家们创作的。HTTP 为
客户端与服务器端之间跨网络相互传输信息定义了一个接口。它隐藏了双方的实现细
节。
HTTP 设计用来戏剧性地改变系统,而容许一定程度上的延迟和数据的过时。
这种设计允许 计算机中间媒体,如代理服务器来协调通信,提供诸多好处,
如缓存,压缩和导航。HTTP的这些特性,使它在World Wide Web世界里
成为非常理想的工具。它以固有的延迟时间来大量地戏剧性的改变和推进着
网络技术的发展。它也经受住了时间的考验,从1996年面世以来,一直助力
着World Wide Web。
跨越HTTP 1.1
HTTP 也并不是静止的,它也在往前发展。
之前对HTTP spec RFC 2616存在都会一些概念上的混淆,IETF
搞了个 httpbis ,但没有在公共产生多大影响,它们后来搞的
HTTP 2.0也没有产生多大影响 。因为 httpbis 原来是要取代
HTTP的,而且还能提供对HTTP更深层的理解,所以我们在以
后将用它做为基础。
HTTP 信息交换
基于HTTP的系统,它们在交换信息的时候,是通过 request / response
的方式,无状态地进行的。
君请看:
客户端发出一个请求

这个请求,包含了HTTP版本,某个资源的URI,请求头,HTTP方法,和一
个可选的实体内容。这个请求将被发送到原服务器。服务器接到后看URIs
和HTTP方法,以此来决定它是否可以处理这个信息。如果它能,它将查看
请求头,然后根据请求头来处理信息。
等到服务器处理完这个信息之后,HTTP response响应被生成,其中包含
对资源的一个呈现。
君请看:

这个响应,包含了HTTP 版本、响应头、和可选的实体body,一个状态码
和一个描述。跟服务器接收信息类似,客户端将用它的控制信息来检查响
应头,并随后处理这个信息和它的内容。
intermediarie 中间人
这个过程,其中忽略了一个重要的部分,intermediaries 。中间人。
HTTP 是架构在系统中组件或服务器各司其职的考虑之上的。让一个HTTP
客户端看见服务器,是不必要的。由于请求会跨越很长的路程来到服务器,
它将会遇到一些中间人,如图。它们可能是代理或者是一些可能会检查
HTTP请求或响应并修改或替换信息的组件。
中间人能立刻返回一个响应,并调用日志记录,或者不作处理。
中间人在提高和加强通信方面会有好处,比如它会将从服务器返回的缓存
数据直接返回给请求端,此举大大提高了响应时间。如图:

从图中也可以看出,中间人可以位于任务地方。
中间人的类型
在客户端和服务器端通信中,有三类中间人参与其中,而且对客户端是可见
的。
- 代理 它会为客户端处理HTTP的请求和响应。客户使用代理通常是有意的。
- 网关 它会接收传入的HTTP信息,转换为服务器的协议,也将送出的信息
转换为HTTP协议。它表现地类似于服务器,
- 通道 如HTTPS
原文这里提到了一下 CDN 。
Designing Evolvable Web API with ASP.NET 随便读,随便记 “The Internet,the World Wide Web,and HTTP”——HTTP的更多相关文章
- Designing Evolvable Web API with ASP.NET 随便读,随便记 “The Internet,the World Wide Web,and HTTP”
1982年,诞生了 Internet; 1989年,诞生了World Wide Web . "World Wide Web"的构造为主要由 三部分构成: resources 资源 ...
- Web API 2 入门——使用Web API与ASP.NET Web窗体(谷歌翻译)
在这篇文章中 概观 创建Web窗体项目 创建模型和控制器 添加路由信息 添加客户端AJAX 作者:Mike Wasson 虽然ASP.NET Web API与ASP.NET MVC打包在一起,但很容易 ...
- 【翻译】使用Knockout, Web API 和 ASP.Net Web Forms 进行简单数据绑定
原文地址:http://www.dotnetjalps.com/2013/05/Simple-data-binding-with-Knockout-Web-API-and-ASP-Net-Web-Fo ...
- Asp.Net Web API VS Asp.Net MVC
http://www.dotnet-tricks.com/Tutorial/webapi/Y95G050413-Difference-between-ASP.NET-MVC-and-ASP.NET-W ...
- ASP.NET Web API和ASP.NET Web MVC中使用Ninject
ASP.NET Web API和ASP.NET Web MVC中使用Ninject 先附上源码下载地址 一.准备工作 1.新建一个名为MvcDemo的空解决方案 2.新建一个名为MvcDemo.Web ...
- Knockout, Web API 和 ASP.Net Web Forms 进行简单数据绑定
使用Knockout, Web API 和 ASP.Net Web Forms 进行简单数据绑定 原文地址:http://www.dotnetjalps.com/2013/05/Simple-da ...
- 002.Create a web API with ASP.NET Core MVC and Visual Studio for Windows -- 【在windows上用vs与asp.net core mvc 创建一个 web api 程序】
Create a web API with ASP.NET Core MVC and Visual Studio for Windows 在windows上用vs与asp.net core mvc 创 ...
- Using MongoDB with Web API and ASP.NET Core
MongoDB is a NoSQL document-oriented database that allows you to define JSON based documents which a ...
- 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【八】——Web Api的安全性
系列导航地址http://www.cnblogs.com/fzrain/p/3490137.html 前言 这一篇文章我们主要来探讨一下Web Api的安全性,到目前为止所有的请求都是走的Http协议 ...
随机推荐
- WIN7中因为服务进程是运行在session0下面的~~第一个登录的用户session为1(WTSGetActiveConsoleSessionId取得session的Id,OpenProcessToken取得进程的令牌)
procedure TsvrExamCtrl.ServiceStart(Sender: TService; var Started: Boolean);var CMD: string;begin ...
- Delphi 发展历史
自然人的软件著作权,保护期为自然人终生及其died后50年:软件是合作开发的,截止于最后died的自然人died后第50年的12月31日.法人或者其他组织的软件著作权,保护期为软件首次发表之后50年, ...
- 为什么国外程序员爱用Mac?
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒.那么为什么专业人士也对 Mac 情有独钟呢?从个人使用 ...
- VC 6.0 LNK2005 错误 处理
造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量.可能存在两种情况: A.对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下.其实这是错误的,全局变量是 ...
- Java开发之反射的使用
通过类名获取类. Class serviceManager = Class.forName("android.os.ServiceManager"); 获取方法 Method me ...
- C# 按拼音/笔划 排序的简单示例(转)
class Program { static void Main(string[] args) { string[] arr = { "趙(ZHAO)", "錢(QIAN ...
- SecureCRT访问开发板linux系统
前言: 最近在用OK6410开发板跑linux系统,经常在终端上敲一些指令,无奈开发板屏幕太小用起来非常不方便,所以使用终端一款能运行在windows上的软件与开发板连接,直接在电脑上操作开发板了,这 ...
- POJ 2828 Buy Tickets (线段树 单点更新 变形)
题目链接 题意:有N个人排队,给出各个人想插队的位置和标识,要求输出最后的序列. 分析:因为之前的序列会因为插队而变化,如果直接算时间复杂度很高,所以可以用 线段树逆序插入,把序列都插到最后一层,le ...
- poj 1185 炮兵阵地(三维状态压缩dP)
题目:http://poj.org/problem?id=1185 思路: d[i][j][k]表示第i行的状态为第k个状态,第i-1行的状态为第j个状态的时候 的炮的数量. 1表示放大炮, 地形状态 ...
- 移动APP服务端API设计应该考虑到的问题
2014年,移动APP的热度丝毫没有减退,并没有像桌面软件被WEB网站那样所取代, 不但如此,越来越多的传统应用.网站也都开始制作自己的移动APP,也就是我们常说的IOS客户端.android客户端. ...