一次完整的http请求过程和常见的状态码

1.域名解析
      服务器是以ip的形式存在的,发送http请求时需要把域名解析为ip地址。一般系统会先查询DNS缓存和hosts文件的信息,看是否存在对应的ip解析记录,没有会发送给DNS服务器,直到得到ip地址;
2.建立TCP连接
       http协议是基于TCP协议来实现的,首先就是要通过TCP三次握手与服务器建立连接,一般HTTP默认的端口号为80;
3.浏览器发送请求命令
      一旦建立TCP连接,客户端会向服务器发送请求命令,例如  GET/SAMPLE/hello.jsp HTTP/1.1  请求方法+请求URI+HTTP协议版本;
4.客户端发送请求头信息
      在发送请求命令后,还会发送一些其他信息,最后以一行空白内容告知服务器已经完成头信息的发送;
5.服务器应答
     收到浏览器请求后,服务器会对其进行回应,应答的第一部分是协议的版本号和应答码;
6.服务器回应头信息 
     服务器会将自身信息发送到浏览器;
7.服务器发送数据
     完成所有应答后,会以content-type应答头所描述的格式发送给用户所需求的数据信息;
8.断开TCP连接
     四次挥手断开TCP连接,也可以在请求头加上CONNECTION:KEEP-LIVE,来将tcp保持打开状态,便于下次连接。

 
常见的状态码:
  • 200("OK")
    一切正常。实体主体中的文档(若存在的话)是某资源的表示。
  • 400("Bad Request")
    客户端方面的问题。实体主题中的文档(若存在的话)是一个错误消息。希望客户端能够理解此错误消息,并改正问题。
  • 500("Internal Server Error")
    服务期方面的问题。实体主体中的文档(如果存在的话)是一个错误消息。该错误消息通常无济于事,因为客户端无法修复服务器方面的问题。
  • 301("Moved Permanently")
    当客户端触发的动作引起了资源URI的变化时发送此响应代码。另外,当客户端向一个资源的旧URI发送请求时,也发送此响应代码。
  • 404("Not Found") 和410("Gone")
    当客户端所请求的URI不对应于任何资源时,发送此响应代码。404用于服务器端不知道客户端要请求哪个资源的情况;410用于服务器端知道客户端所请求的资源曾经存在,但现在已经不存在了的情况。
  • 409("Conflict")
    当客户端试图执行一个”会导致一个或多个资源处于不一致状态“的操作时,发送此响应代码。

1XX:通知

2XX: 成功

3XX 重定向

4XX:客户端错误

5XX 服务端错误

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值