Web通信
客户在浏览器输入一个有效的url地址开始,浏览器会利用socket向url对应的web服务器发送一个TCP请求,这个请求成功一次就需要来回握三次手才能确定,成功以后,浏览器利用socket TCP连接资源向web服务器请求http协议,发送以后就等着Web服务器把Http返回头和Body发送回来,发回来后浏览器关闭Socket连接,然后做Http返回头和Body的解析工作,最后呈现在浏览器上的就是看到的页面了。所有一次完整的Web通信,Tcp连接需要三次握手,也就是来回三次方能确定一个Tcp请求是否成功。然后Tcp关闭来回需要4次才能完成:(1)客户端要求结束数据传输(2)服务器发送确认结束的消息(3)服务器向客户端发送结束Tcp会话的消息(4)客户端发送确认信息给服务器,整个会话结束。
Http响应状态
1.状态代码由3位数字组成,表示请求是否被理解或被满足,状态描述给出了关于状态代码的简短的文本描述。
2.状态代码的第一个数字定义了响应的类别,后面两位数字没有具体的分类,第一个数字有五种可能的取值:
1xx:指示信息---表示请求已接收,继续处理。
2xx:成功---表示请求已经被成功接收、理解、接受。
3xx:重定向---要完成请求必须进行更进一步的操作。
4xx:客户端错误---请求有语法错误或请求无法实现。
5xx:服务器端错误---服务器未能实现合法的请求。
状态代码 |
状态描述 |
说明 |
200 |
OK |
客户端请求成功。 |
201 |
Created |
请求成功且服务器已经创建。 |
301 |
Moved Permanent |
在响应报文中使用首部“Location:URL”;指定资源现在所在的位置 |
302 |
Found |
临时重定向 |
304 |
Not Modified |
可以使用缓存,告诉客户端没有更改资源;条件式请求中使用 |
400 |
Bad Request |
由于客户端请求有语法错误,不能被服务器理解。 |
401 |
Unauthorized |
请求未经授权。这个状态代码必须和WWW-Authenticate报送域一起使用。 |
403 |
Forbidden |
服务器收到请求,但是拒绝提供服务。服务器通常会在响应正文中给出不提供服务的原因。 |
404 |
Not Found |
请求的资源不存在,例如,输入了错误的URL。 |
405 |
Method Not Allowed |
不允许使用此方法请求相应的URL |
500 |
Internal Server Error |
服务器发生不可预期的错误,导致无法完成客户端的请求。 |
502 |
Bad Gateway |
代理服务器从上级收到了一条伪响应 |
503 |
Service Unavailable |
服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。 |
Web通信的更多相关文章
- JavaScript之web通信
web通信,一个特别大的topic,涉及面也是很广的.因最近学习了 javascript 中一些 web 通信知识,在这里总结下.文中应该会有理解错误或者表述不清晰的地方,还望斧正! 一.前言 1. ...
- 【转】JavaScript之web通信
原文转自:http://cloudbbs.org/forum.php?mod=viewthread&tid=28773&page=1&extra=#pid180304 一.前言 ...
- Web 通信 之 长连接、长轮询(转)
Web 通信 之 长连接.长轮询(long polling) 基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强 ...
- Web通信之:长轮询(long-polling)(转)
Web通信之:长轮询(long-polling) “轮询”是个耐人寻味的词,第一次看到它的时候我就直接理解为“轮流查询”了.但是看到了英文才知道这个是网络通信专业的术语.轮询,其实就是一群人在排队买东 ...
- 即时Web通信总结
即时Web通信在一些对数据实时性要求特别严格的应用中十分重要,如监控系统.报价系统.股票交易系统和即时在线聊天应用等,由于http协议设计当初是为了服务器端响应客户端的请求而设计的,只能在客户端主动发 ...
- Web通信中的Get、Post方法
首先我们要了解Tomcat,Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选. ...
- [转]Web 通信 之 长连接、长轮询(long polling)
本篇文章转载自Web 通信之长连接.长轮询(longpolling),版权归作者所有. 转者按:随着技术的发展,在HTML5中,可以通过WebSocket技术来完成长连接的开发,虽然如此,本文依然存在 ...
- Web 通信 之 长连接、长轮询(long polling)(转载)
基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性. 一.什么是长连接.长轮询? 用通俗易 ...
- Web 通信 之 长连接、长轮询(转)
Web 通信 之 长连接.长轮询(long polling) 基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强 ...
随机推荐
- 黑客公布2012年最弱智密码Top25(转)
尽管弱密码对安全性的危害大家都知道,但是仍然有很多网民使用超弱密码.日前,黑客公布了一份密码文档,列出了今年最弱智密码. 根据 SplashData 公布的“年度最弱智密码 Top25”,和去年一样, ...
- 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange
如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况 ...
- android在不加载图片的前提下获得图片的宽高
public static int[] getImageWidthHeight(String path){ BitmapFactory.Options options = new BitmapFact ...
- TortoiseSVN 命令 (命令行执行工具)
TortoiseSVN是一个GUI客户端,这个自动化指导为你展示了让TortoiseSVN对话框显示并收集客户输入,如果你希望编写不需要输入的脚本,你应该使用官方的Subversion命令行客户端. ...
- Android Studio多Module开发需要注意的问题
多module开发,其中的一个为入口module,其他module为独立的“应用”(library) 1.在原有的项目导入另外个项目的module为主项目的次module,即在A项目中添加一个启动B项 ...
- FreeSWITCH取消Digest校验流程
方法一.通过使用acl配置 <list name="domains" default="deny"> <!-- domain= is spec ...
- mark CodeGenerator
基础权限开发框架 BMS = Spring boot + Mybatis plus + Shiro BMS / bms-admin / src / main / java / com ...
- python标准库介绍——37 signal 模块详解
==signal 模块== 你可以使用 ``signal`` 模块配置你自己的信号处理器 (signal handler), 如 [Example 3-11 #eg-3-11] 所示. 当解释器收到某 ...
- python标准库介绍——29 zlib 模块详解
==zlib 模块== (可选) ``zlib`` 模块为 "zlib" 压缩提供支持. (这种压缩方法是 "deflate".) [Example 2-43 ...
- 转 kafka 清理数据
由于项目原因,最近经常碰到Kafka消息队列拥堵的情况.碰到这种情况为了不影响在线系统的正常使用,需要大家手动的清理Kafka Log.但是清理Kafka Log又不能单纯的去删除中间环节产生的日志, ...