全是干货的技术殿堂
文章收录在我的 GitHub 仓库,欢迎Star/fork:
Java-Interview-Tutorial https://github.com/Wasabi1234/Java-Interview-Tutorial
与因特网相连的端系统提供了一个应用程序接口(英语:Application Programming Interface,缩写:API;又称为应用程序编程接口)是软件系统不同组成部分衔接的约定。
API规定了运行在一个端系统上的软件请求因特网基础设施向运行在另一个端系统上的特定目的地软件交付数据的方式。 比方说:Alice使用邮政服务向Bob发一封信,邮政服务要求Alice将信放进信封中;在信封的中央写上Bob的全名、地址和邮政编码;封上信封;在信封的右上角贴上邮票;最后将信封丢进邮箱里;邮政服务有自己的“邮政服务API”或一套规则,Alice必须这么遵循,邮政服务才能把信寄给Bob;同理,因特网也有一个发送数据的程序必须遵循的API,使因特网向接收数据的程序交付数据。
由于近年来软件的规模日益庞大,常常需要把复杂的系统划分成小的组成部分,编程接口的设计十分重要。程序设计的实践中,编程接口的设计首先要使软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。
认证: (欺骗)。确保你的用户或客户端真的是他(它)们自己 授权:(信息泄漏)/(干预)/(越权) 确保每个针对API的访问都是经过授权的 审计: (否认)。确保所有的操作都被记录,以便追溯和监控 流控: (拒绝服务)。防止用户请求淹没你的API。 加密: (信息泄漏)。确保出入API的数据是私密的。
Java最常见实现方式基于cookie和session实现