• http 协议的过程


    当你输入某个网址的时候发生了什么?

    首先:你该知道 a.http协议是应用层协议,他是浏览器像服务器请求网页,服务器返回网页的过程,他是基于tcp协议的。

    1.假设随便输入输入域名 http://www.cnblogs.com/stg609/archive/2008/07/06/1236966.html

    2.下面会进行dns解析,如果本地有dns缓存,则直接从缓存中取得。获得服务器ip地址。

    3.进行tcp连接(对于版本1.0,一次连接,一次请求,对于1.1一次连接可以多次请求);

    4.发送http请求报文:主要有: 

    请求方法(get,post,head)

    http版本号: 1.0.或1.1 (http://blog.csdn.net/elifefly/article/details/3964766区别:

    请求的URI: 

    请求的主机:

    connetction:请求的Connection请求头的值为Keep-Alive时,客户端通知服务器返回本次请求结果后保持连接;Connection请求头的值为close时,客户端通知服务器返回本次请求结果后关闭连接

    5.返回报文:

    a.状态行:最重要的是状态码和对应描述。200(ok)404(not fonund) 401(not 授权)

    200 OK      //客户端请求成功
    400 Bad Request  //客户端请求有语法错误,不能被服务器所理解
    401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
    403 Forbidden  //服务器收到请求,但是拒绝提供服务
    404 Not Found  //请求资源不存在,eg:输入了错误的URL
    500 Internal Server Error //服务器发生不可预期的错误
    503 Server Unavailable  //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

    http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html

    b.相应报文头:就是服务器的一些信息

    c: 正文网页内容

    6.释放连接

    6.获得html

  • 相关阅读:
    远程连接ubuntu的MongoDB遇到的坑
    使用google的pprof工具以及在gin中集成pprof
    Erlang垃圾回收机制的二三事
    利用Redis cache优化app查询速度实践
    是财富还是陷阱?如何处理他人的代码
    【译】如何成为一个优秀的开发者
    [译] 你应该升级 MQTT3.1.1 的6个理由
    基于 ANSIBLE 自动化运维实践
    poolboy的坑
    Erlang 内存泄漏分析
  • 原文地址:https://www.cnblogs.com/hansongjiang/p/3856451.html
Copyright © 2020-2023  润新知