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  服务器当前不能处理,也许一段时候可以

     

     

     

     

     

  • 相关阅读:
    rs
    stm32f767 usoc3
    stm32f767 RTT 日志
    stm32f767 标准库 工程模板
    stm32f767 HAL 工程模板
    docker tab 补全 linux tab 补全
    docker anconda 依赖 下载 不了
    docker run 常用 指令
    linux scp 命令
    Dockerfile 常用参数说明
  • 原文地址:https://www.cnblogs.com/-beauTiFul/p/9094935.html
Copyright © 2011-2022 走看看