Questions tagged «http»

超文本传输​​协议-一种表示Web请求和答复的文本系统。

1
渐进式HTTP下载是否可以替代HLS / DASH / RTMP提供实时视频?
我正在一个需要向用户流式传输实时视频的网站上工作,因此,我不得不直奔当前基于浏览器的视频流技术的遗憾状态。目前,最流行的实时流媒体解决方案都存在兼容性问题。RTMP需要Flash,Safari和Chrome for Android仅本地支持HLS,DASH在任何地方均不受本地支持,使用dash.js需要Media Source Extensions,但尚未得到广泛支持。 这给我带来了一个显而易见的问题:是否可以使用简单的渐进式下载来替代需要浏览器支持或插件的HLS,RTMP和DASH之类的协议? 使用渐进式下载流式传输实时媒体的想法并不是前所未有的。人们已经将其用于音频。诸如liveCaster之类的工具可让您通过单个渐进式HTTP响应流式传输实时MP3音频,而无需预先录制的MP3文件,而AmplitudeJS之类的库已竭尽全力添加与这种实时音频流相关的功能。 不过,我还没有看到这种技术在视频中被广泛使用的任何实例,而且我也不能说出原因。似乎它将以较少的权衡消除一层混乱且困难的浏览器端兼容性问题。(即使是专业人士,兼容性仍然是实时流的一个巨大问题;如果我尝试在Firefox中BBC的iPlayer上观看实时视频,它只会给我一条错误消息,告诉我安装Flash。)这种技术,我从未见过有人提到我这个想法。 为什么?是否有基本限制(我看不到),使得它无法像正在生成的MP4一样通过渐进式下载流式传输视频文件,并在<video>下载时在元素中播放?

4
合并多个HTTP请求以节省带宽是否是一个好主意?
我正在准备一个单页应用程序,该应用程序有时会在缓慢的移动连接上使用。就API请求而言,它的某些部分相当繁重(为新的屏幕显示获取10个不同的资源)。 现在,将这些服务合并到提供所有必需数据的服务中,但是就REST原理而言不是“纯”的,这是一个好主意吗?是否会有可观的性能提升?
16 api  rest  http 

1
RESTful API和i18n:如何设计响应?
我们正在设计一个RESTful API,主要用于满足单个客户端的需求。由于其非常特殊的情况,此客户端必须发出尽可能少的请求。 API通过请求中的Accept-Language标头处理i18n。这适用于客户端需要做的所有事情,除了一项功能外,在该功能中,客户端需要在所有可用的语言环境中存储对单个端点的请求响应。 我们是否可以以某种方式设计API,使客户端可以在单个请求中获取所有这些信息,而又不会破坏一致的,结构良好的RESTful API设计? 到目前为止,我们已经考虑的选项: 允许在Accept-Language标头中包含多个语言环境,并在响应中为所有请求的语言环境添加本地化版本,每个语言环境均以其ISO 639-1语言代码标识为密钥。 为该端点创建类似“?all_languages = true”的参数,并在响应中返回所有可用语言环境的本地化版本(如果存在该参数的话)。 (如果以上方法对我们都不起作用),将发出多个请求以从客户端获取所有本地化版本。 哪一个是最好的选择?
15 rest  api  api-design  http 

12
了解无状态互联网[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我正在从桌面开发人员过渡到Web开发人员,并且无法理解为什么HTTP是无状态的。原因是什么?像我这样的桌面开发人员可以通过哪些方式过渡到无状态开发环境?
15 internet  tcp  http 

3
找不到资源时,我应该返回204或404响应吗?
我正在为比赛和日程表开发一个简单的RESTful服务。通过包含JSON正文的POST请求创建锦标赛时,会将锦标赛插入,BiMap在DAO实现中声明如下: private BiMap<String, Tournament> tournaments = Maps.synchronizedBiMap(HashBiMap.create()); 创建锦标赛时,将返回其关联的字符串ID,以便用户将来可以参考该锦标赛。他/她可以从执行以下请求的新锦标赛中获取信息: GET http://localhost:8080/eventscheduler/c15268ce-474a-49bd-a623-b0b865386f39 但是,如果找不到具有此类ID的锦标赛怎么办?到目前为止,我将返回204响应。好吧,泽西岛null从其中一种方法返回时正在为我做这件事。这是与上述路线相对应的方法: @Path("/{id}") @GET @Produces(MediaType.APPLICATION_JSON) public Tournament getTournament(@PathParam("id") String id) { Optional<Tournament> optTournament = tournamentDao.getTournament(id); if (optTournament.isPresent()) return optTournament.get(); return null; } 我的问题是:可以返回204: No Content响应,还是应该返回404响应,因为找不到资源? 如果我应该将其更改为404,则会出现一个明显的问题:我应该更改方法签名吗?由于现在Tournament可能不会返回(类型为)锦标赛,因此方法应该看起来有所不同。我应该使用该Response类型作为返回类型吗?
15 java  rest  web-services  http 

1
为什么有些网站在Chrome开发者工具中显示0字节
我正在为我的网站进行页面速度优化,并研究其他网站如何做到这一点。我注意到,某些网站(例如Facebook或Ringgitplus)在Chrome开发人员工具的“网络”标签中显示了某些资源的0字节,而实际内容的大小为几千字节。 我读了一些文章,说大小是要获取的数量,内容是响应的实际大小。因此,当大小为0字节时,表示它是从缓存中提供的。但是,当我使用隐身模式打开页面或清除所有缓存时,也会发生同样的事情。 这怎么可能?如何为我的网站实现相同的目标?
14 http  caching  chrome 

4
为什么Apache HTTP Server如此复杂?
Apache HTTP服务器是比,说一个相当大的项目要大得多,lighthttp或nginx否则肯定了“简单的HTTP服务器,”你看在C / C左右浮动++教程。 额外的代码是做什么的?它是增加安全性/稳定性(如果可以的话,如何呢?),还是仅用于执行诸如解析Apache conf文件/ .htaccess键入事物(以及,我猜VirtualHosts等等)之类的事情。 我要求不要批评Apache,但是因为我对编写各种Web服务器感兴趣,并且我想知道一些事情,尽管可能并不明显,但对于记住一个安全,稳定和快速的Web服务器来说,这些事情很重要。
14 c  apache  http 

4
为什么HTML / JavaScript压缩有益
当HTTP协议已经支持gzip数据压缩时,为什么HTML / JavaScript压缩有益呢? 我认识到Javascript / HTML缩小可以消除不必要的空格,并可能将变量重命名为几个字母,从而显着减小Javascript / HTML文件的大小,但是当重复次数很多时,LZW算法的效果不是特别好字符(例如很多空白?) 我意识到某些Javascript缩小工具所做的不仅仅是缩小尺寸。例如,谷歌的闭包编译器还试图通过内联函数和进行其他分析来提高代码性能。但是Javascript压缩的主要目的通常是减小文件大小。 我还意识到,除了性能之外,还有其他原因可能需要减少,例如代码混淆。但是同样,通常不强调该原因,而不是强调性能提高和文件大小减小。例如,Closure Compiler并不是宣传为混淆工具,而是宣传为代码大小缩小器和下载速度增强器。 那么,当您已经通过gzip压缩显着减小文件大小时,实际上从Javascript / HTML 压缩中获得了多少性能?
14 javascript  html  http  minify 

2
比较TCP / IP应用程序与HTTP应用程序[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我对开发使用Java编写的面向用户的大型网站感兴趣。 至于设计,我正在考虑开发独立的模块化服务,这些服务可以作为我的主要Web应用程序的数据提供者。 至于编写这些模块化服务(数据提供程序),我可以利用现有的框架(如Spring)并按照RESTful设计模式开发这些服务,并通过HTTP和消息格式(如JSON)公开资源...或者我可以利用现有的网络像Netty这样的框架(http://netty.io/)和像Protobufs这样的序列化格式(https://developers.google.com/protocol-buffers/docs/overview),并开发一个TCP服务器来来回发送序列化的protobuf有效载荷。 您何时应选择一个?使用Protobufs之类的序列化格式并通过网络发送字节流会有任何好处吗?仅使用JSON会产生开销吗?使用TCP / IP和使用HTTP之间有多少开销?什么时候应该使用Spring over Netty来建立这样的服务,反之亦然?
13 java  rest  http  serialization  tcp 

2
在RESTful API中实现命令模式
我正在设计HTTP API,希望使其尽可能地具有RESTful风格。 有些动作的功能会散布在一些资源上,有时需要撤消。 我以为自己,这听起来像是命令模式,但是我如何将其建模为资源呢? 我将介绍一个名为XXAction的新资源,例如DepositAction,它将通过这样的方式创建 POST /card/{card-id}/account/{account-id}/Deposit AmountToDeposit=100, different parameters... 这实际上将创建一个新的DepositAction并激活它的Do / Execute方法。在这种情况下,返回201 Created HTTP状态表示操作已成功执行。 之后,如果客户希望查看操作细节,则可以 GET /action/{action-id} 我猜应该阻止Update / PUT,因为此处不相关。 为了撤消操作,我想到了使用 DELETE /action/{action-id} 实际上将调用相关对象的Undo方法,并更改其状态。 假设我只对一次“撤消”感到满意,而无需重做。 这种方法可以吗? 有什么陷阱,不使用它的原因吗? 从客户的观点看是否明白?

5
将RESTful设计应用于整个网站?
这一切可能都碰到了新事物,但是我正在努力设计一个完全RESTful的网站。我了解将RESTful设计应用于用户,照片,博客帖子等内容,因为我认为它们就像“对象”。 但是,关于“关于我们”页面呢。那是什么资源?从RESTful的意义上来说,它甚至是一种资源吗?另外,说我去URL“ http://www.example.com/”,我要什么资源?索引资源?

4
乐观锁定不起作用怎么办?
我有以下这种情况: 用户向GET请求/projects/1并接收ETag。 用户从步骤1 开始使用ETag 进行PUT请求/projects/1。 用户/projects/1从步骤1 开始使用ETag 发出另一个PUT请求。 通常,第二个PUT请求将收到412响应,因为ETag现在已过时-第一个PUT请求修改了资源,因此ETag不再匹配。 但是,如果同时发送两个PUT请求(或者一个又一个发送)怎么办?在PUT#2到达之前,第一个PUT请求没有时间处理和更新资源,这导致PUT#2覆盖PUT#1。乐观锁定的全部目的是要避免这种情况的发生。

3
通过HTTP标头传输访问令牌是否安全?
这是第一个RESTful Web服务,我担心安全性问题。通过HTTP标头传输访问令牌是否安全?例如: POST /v1/i/resource HTTP/1.1 Content-Type: application/x-www-form-urlencoded Api-key: 5cac3297f0d9f46e1gh3k83881ba0980215cd71e Access_token: 080ab6bd49b138594ac9647dc929122adfb983c8 parameter1=foo&parameter2=bar 连接已建立SSL。另外,需要定义什么作为scope每个属性access token

1
有关隧道的REST API规则
只需在REST API规则手册中阅读以下内容:不得使用GET和POST来传送其他请求方法。 隧道是指对HTTP的任何滥用,它们会掩盖或错误表示消息的意图并破坏协议的透明性。REST API不得通过滥用HTTP的请求方法来折衷其设计,以适应具有有限HTTP词汇量的客户端。始终正确使用本节中的规则指定的HTTP方法。[我的重点] 但是随后,由于只了解和,许多框架使用隧道来通过HTML表单公开REST接口。我最近的示例是一个for flask(由框架的作者提交):http : //flask.pocoo.org/snippets/38/。<form>GETPOSTMethodRewriteMiddleware 在Web框架中没有黑客或附加组件的情况下,有什么方法可以遵守“规则”?
11 api  rest  web-framework  http 

1
生成Web服务的商业许可证密钥
背景 我有一个关于基于Web的软件许可的业务问题。许多网站都提供软件作为各种API的服务。一个很好的例子是Google的Custom Search API。使用Web服务的过程通常类似于: 帐户。用户创建一个帐户。 服务器。用户定义将发出API请求的服务器的IP地址。 键。用户收到所需API的公共API密钥。 指南。向用户提供了文档,该文档显示了如何使用API​​密钥进行请求。 测试。用户可以发出测试请求以验证集成功能。 帐单。用户付费激活帐户。 生产。用户将Web服务集成到他们的应用程序中。 停用。过期,超过请求限制等时,系统将停用帐户。 这些要求是与许可服务集成的补充。 问题 对于一家小型企业而言,这是很多工作。 问题 有哪些现成的开源项目可以解决此问题? 如果没有此类项目,您将如何构建可行的低成本解决方案(理想情况下,每个许可证的百分比)?也就是说,对于想要获得基于Web的服务许可的小型企业(几乎没有收入或没有收入),您将使用什么软件或现有的商业服务? 谢谢! 相关链接 Web应用程序中的许可证密钥解决方案,最佳方法是什么? API管理系统

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.