客户在浏览器输入一个有效的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通信的更多相关文章

  1. JavaScript之web通信

    web通信,一个特别大的topic,涉及面也是很广的.因最近学习了 javascript 中一些 web 通信知识,在这里总结下.文中应该会有理解错误或者表述不清晰的地方,还望斧正! 一.前言 1. ...

  2. 【转】JavaScript之web通信

    原文转自:http://cloudbbs.org/forum.php?mod=viewthread&tid=28773&page=1&extra=#pid180304 一.前言 ...

  3. Web 通信 之 长连接、长轮询(转)

    Web 通信 之 长连接.长轮询(long polling) 基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强 ...

  4. Web通信之:长轮询(long-polling)(转)

    Web通信之:长轮询(long-polling) “轮询”是个耐人寻味的词,第一次看到它的时候我就直接理解为“轮流查询”了.但是看到了英文才知道这个是网络通信专业的术语.轮询,其实就是一群人在排队买东 ...

  5. 即时Web通信总结

    即时Web通信在一些对数据实时性要求特别严格的应用中十分重要,如监控系统.报价系统.股票交易系统和即时在线聊天应用等,由于http协议设计当初是为了服务器端响应客户端的请求而设计的,只能在客户端主动发 ...

  6. Web通信中的Get、Post方法

    首先我们要了解Tomcat,Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选. ...

  7. [转]Web 通信 之 长连接、长轮询(long polling)

    本篇文章转载自Web 通信之长连接.长轮询(longpolling),版权归作者所有. 转者按:随着技术的发展,在HTML5中,可以通过WebSocket技术来完成长连接的开发,虽然如此,本文依然存在 ...

  8. Web 通信 之 长连接、长轮询(long polling)(转载)

    基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性. 一.什么是长连接.长轮询? 用通俗易 ...

  9. Web 通信 之 长连接、长轮询(转)

    Web 通信 之 长连接.长轮询(long polling) 基于HTTP的长连接,是一种通过长轮询方式实现"服务器推"的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强 ...

随机推荐

  1. 黑客公布2012年最弱智密码Top25(转)

    尽管弱密码对安全性的危害大家都知道,但是仍然有很多网民使用超弱密码.日前,黑客公布了一份密码文档,列出了今年最弱智密码. 根据 SplashData 公布的“年度最弱智密码 Top25”,和去年一样, ...

  2. 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange

    如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况 ...

  3. android在不加载图片的前提下获得图片的宽高

    public static int[] getImageWidthHeight(String path){ BitmapFactory.Options options = new BitmapFact ...

  4. TortoiseSVN 命令 (命令行执行工具)

    TortoiseSVN是一个GUI客户端,这个自动化指导为你展示了让TortoiseSVN对话框显示并收集客户输入,如果你希望编写不需要输入的脚本,你应该使用官方的Subversion命令行客户端. ...

  5. Android Studio多Module开发需要注意的问题

    多module开发,其中的一个为入口module,其他module为独立的“应用”(library) 1.在原有的项目导入另外个项目的module为主项目的次module,即在A项目中添加一个启动B项 ...

  6. FreeSWITCH取消Digest校验流程

    方法一.通过使用acl配置 <list name="domains" default="deny"> <!-- domain= is spec ...

  7. mark CodeGenerator

    基础权限开发框架 BMS = Spring boot + Mybatis plus + Shiro     BMS / bms-admin  / src  / main  / java  / com  ...

  8. python标准库介绍——37 signal 模块详解

    ==signal 模块== 你可以使用 ``signal`` 模块配置你自己的信号处理器 (signal handler), 如 [Example 3-11 #eg-3-11] 所示. 当解释器收到某 ...

  9. python标准库介绍——29 zlib 模块详解

    ==zlib 模块== (可选) ``zlib`` 模块为 "zlib" 压缩提供支持. (这种压缩方法是 "deflate".) [Example 2-43 ...

  10. 转 kafka 清理数据

    由于项目原因,最近经常碰到Kafka消息队列拥堵的情况.碰到这种情况为了不影响在线系统的正常使用,需要大家手动的清理Kafka Log.但是清理Kafka Log又不能单纯的去删除中间环节产生的日志, ...