客户在浏览器输入一个有效的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 |
服务器当前不能够处理客户端的请求,在一段时间之后,服务器可能会恢复正常。 |