zoukankan      html  css  js  c++  java
  • 04慕课网《进击Node.js基础(一)》HTTP讲解

    HTTP:通信协议

    流程概述:

    http客户端发起请求,创建端口默认8080

    http服务器在端口监听客户端请求

    http服务器向客户端返回状态和内容

    稍微详细解析:

     1.域名解析:浏览器搜素自身的DNS缓冲,查看是否有被请求的域名所定义的IP,缓冲1分钟

    ## 谷歌浏览器输入:
    chrome://net-internals/#dns

      2.搜索操作系统自身的DNS缓冲(浏览器无缓冲或失效)

      3.读取本地的HOST文件

    C:WindowsSystem32driversetc

     4.浏览器发起 一个DNS的系统调用

           - 宽带运营商服务器查看本身缓存

      - 运营商服务器发起一个迭代(从跟域名对应的IP开始)DNS解析的请求

        运营商服务器把结果IP返回操作系统内核同时缓存

        操作系统内核把IP发回给浏览器

        最终浏览器拿到域名所对应的IP地址

     5.浏览器获得域名对应IP后,发起http“三次握手

      - 浏览器的随机端口(8080)向服务器发送TCP连接请求,

        该请求会经过路由设备、网卡、内核的TCP/IP协议栈、防火墙最终到达web服务端

     6.TCP/IP连接建立以后,浏览器向服务器发送http请求

      - 比如使用http的GET方法请求一个根域的域名,歇息可以采用HTTP 1.0的协议

     7.服务器端接受到请求,根据路径参数,经过后端的处理,将结果的数据返回给浏览器;

      - 如果是页面就会把完整的HTML页面代码返回给浏览器

     8.浏览器获取到HTML页面代码然后开始解析和渲染

       - HTML页面中的JS、CSS、图片等静态资源同样需要经过一个个HTTP请求重复以上步骤获取

     9.浏览器将HTML和静态资源结合渲染,将完整页面呈现

    请求和响应

    http的整个流程可以归纳为请求和响应两个部分

    两者都会发送http头正文信息

    http头

    附加的信息:内容类型、服务器发送响应日期、http状态码

    正文信息

    用户提交的表单数据,或者返回的数据

    HTTP的请求方法

    GET:获取、读取数据

    POST:向指定资源提交数据

    PUT:更新

    DELETE:删除

    HEAD:与GET相似,服务器不传回全部数据

    状态码

    1xx 标识请求被接受
    2xx 请求被成功接受并且处理掉
    3xx 重定向
    4xx 客户端错误
    5xx 服务器端错误

     

    常见状态码

    200  客户端请求成功
    400  客户端请求有语法等错误,服务器端未能理解
    401  请求未经过授权
    403  服务器端拒绝,由于权限等原因
    404  未找到资源
    500  服务器端发生不可预期错误
    503  服务器当前不能处理,也许一段时候可以

     

     

     

     

     

  • 相关阅读:
    titanium开发教程0206创建多行的选择器
    titanium开发教程0210创建的文本字段与嵌入的按钮
    titanium开发教程0209配置文本域和文本区键盘类型
    titanium开发教程0301理解tab group
    titanium开发教程0205创建单行的选择器
    linux shell删除文本每行末尾的单个或者多个空格或者制表符
    R语言中scale函数的用法
    R语言中批量提取当前目录中指定类型的文件
    python中提取包含指定字符的行、提取以指定字符开头、指定字符结尾的行
    python中如何统计文件的行数
  • 原文地址:https://www.cnblogs.com/-beauTiFul/p/9094935.html
Copyright © 2011-2022 走看看