通常都要知道的TCP、HTTP知识点( 二 )

  • 401 unauthorized,表示发送的请求需要有通过 HTTP 认证的认证信息
  • 403 forbidden,表示对请求资源的访问被服务器拒绝
  • 404 not found,表示在服务器上没有找到请求的资源
  •  
    5XX 服务器错误
    • 500 internal sever error,表示服务器端在执行请求时发生了错误
    • 503 service unavailable,表明服务器暂时处于超负载或正在停机维护,无法处理请求
    HTTP协议格式?HTTP的请求和响应的消息协议是一样的,分为三个部分,起始行、消息头和消息体 。这三个部分以CRLF作为分隔符 。最后一个消息头有两个CRLF,用来表示消息头部的结束 。
    通常都要知道的TCP、HTTP知识点

    文章插图
     
    HTTP请求的起始行称为请求行,形如GET /index.html HTTP/1.1
     
    HTTP响应的起始行称为状态行,形如200 ok
     
    消息头部有很多键值对组成,多个键值对之间使用CRLF作为分隔符,也可以完全没有键值对 。形如Content-Encoding: gzip 消息体是一个字符串,字符串的长度是由消息头部的Content-Length键指定的 。如果没有Content-Length字段说明没有消息体,譬如GET请求就是没有消息体的,POST请求的消息体一般用来放置表单数据 。GET请求的响应返回的页面内容也是放在消息体里面的 。我们平时调用API返回的JSON内容都是放在消息体里面的 。
    HTTP的无状态性?所谓HTTP协议的无状态性是指服务器的协议层无需为不同的请求之间建立任何相关关系,它特指的是协议层的无状态性 。但是这并不代表建立在HTTP协议之上的应用程序就无法维持状态 。
     
    应用层可以通过会话Session来跟踪用户请求之间的相关性,服务器会为每个会话对象绑定一个唯一的会话ID,浏览器可以将会话ID记录在本地缓存LocalStorage或者Cookie,在后续的请求都带上这个会话ID,服务器就可以为每个请求找到相应的会话状态 。
    输入url到页面加载都发生了什么事情?(最最常问的来了)
    • 输入地址
    • 浏览器查找域名的 IP 地址 这一步包括 DNS 具体的查找过程,包括:浏览器缓存->系统缓存->路由器缓存...
    • 浏览器向 web 服务器发送一个 HTTP 请求
    • 服务器的永久重定向响应(从 http://example.com 到 http://www.example.com)
    • 浏览器跟踪重定向地址
    • 服务器处理请求
    • 服务器返回一个 HTTP 响应
    • 浏览器显示 HTML
    • 浏览器发送请求获取嵌入在 HTML 中的资源(如图片、音频、视频、css、JS等等)
    • 浏览器发送异步请求

    【通常都要知道的TCP、HTTP知识点】


    推荐阅读