• HTTP问题整理


    https://www.cnblogs.com/haonanZhang/p/6362233.html

    https://www.cnblogs.com/cbslock/p/10139160.html

    https://www.cnblogs.com/yoyoketang/p/10137927.html

    一、一个页面从输入url到加载完成,中间经历了什么。

    1、首先,在浏览器地址栏中输入url。解析url地址是否合法

    2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作

    • 浏览器缓存:浏览器会记录DNS一段时间,因此,只是第一个地方解析DNS请求;
    • 操作系统缓存:如果在浏览器缓存中不包含这个记录,则会使系统调用操作系统,获取操作系统的记录(保存最近的DNS查询缓存);
    • 路由器缓存:如果上述两个步骤均不能成功获取DNS记录,继续搜索路由器缓存;
    • ISP缓存:若上述均失败,继续向ISP搜索。

    3、在发送http请求前,需要域名解析(DNS解析)(DNS(域名系统,Domain Name System)是互联网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住IP地址。),解析获取相应的IP地址

    4、浏览器向服务器发起tcp连接,与浏览器建立tcp三次握手(TCP即传输控制协议。TCP连接是互联网连接协议集的一种)

    5、握手成功后,浏览器向服务器发送http请求,请求数据包

    6、服务器处理收到的请求,将数据返回至浏览器

    7、浏览器收到HTTP响应

    8、浏览器解析响应。如果响应可以缓存,存入至缓存中。

    9、浏览器发送请求获取嵌入在HTML中的资源(html,css,JavaScript,图片,音乐等),对于未知类型,会弹出对话框

    10、ajax查询(网页异步加载的技术),发送异步请求。

    11、页面渲染完成

     

    DNS:域名解析服务,将主机名转换为IP地址。如将http://www.cnblogs.com/主机名转换为IP地址:211.137.51.78 

     

    二、get与post的区别

    get/post比较

     

    三、cookies机制和session机制的区别

    1、cookies数据保存在客户端。session数据保存在服务端

    2、cookies可以减轻服务器压力,但是不安全,容易进行cookies欺骗

    3、session安全一点,但是占用服务器资源。

     

    四、http状态码

    • 200 请求已成功,请求所希望的响应头或数据体将随此响应返回。
    • 201 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其 URI 已经随Location 头信息返回
    • 202 服务器已接受请求,但尚未处理
    • 301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
    • 302 (临时移动) 俗称“临时重定向”,原URI处于“临时维护”状态,新的URI是起“顶包”作用的临时工。重定向。
    • 303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
    • 304 (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
    • 305 (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
    • 307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
    • 400 请求有语法错误。请求没有进入到后台服务里(一般都是前端的锅)
    • 401 当前请求需要用户验证。如果当前请求已经包含了 Authorization 证书,那么401响应代表着服务器验证已经拒绝了那些证书
    • 403 服务器已经理解请求,但是拒绝执行它。与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交
    • 404 请求失败,请求所希望得到的资源未被在服务器上发现(只要不是新手写的demo,一般404都是你路径写错了,或者未区分大小写啥的)
    • 500 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。
    • 501 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。
    • 502 作为网关或者代理工作的服务器尝试执行请求时,从上游服务器接收到无效的响应。无效的响应(基本上就是Tomcat没启好)
    • 503 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。

    可参考:https://blog.csdn.net/Amandazhouzhou/article/details/89210459 

     

    五、http协议请求方式

    get、post、put、delete。

    其他HEAD方、OPTIONS,、TRACE 和 CONNECT 方法(一般都是上面的get和post)。

     

    六、httphttps区别

    HTTPS = HTTP + SSL

    1、https有ca证书,http一般没有

    2、http是超文本传输协议,信息是明文传输。https则是具有安全性的ssl加密传输协议

    3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443(这个只是默认端口不一样,实际上端口是可以改的)

    4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全

    七、HTTP请求报文与响应报文格式

    请求报文包含三部分:
    a、请求行:包含请求方法、url、HTTP版本信息
    b、请求头部(headers)字段
    c、请求内容实体(body)
    响应报文包含三部分:
    a、状态行:包含HTTP版本、状态码、状态码的原因短语
    b、响应头部(headers)字段
    c、响应内容(body)实体

     

    八、什么是Http协议无状态协议?怎么解决Http协议无状态协议?

    1、无状态协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息
    2、无状态协议解决办法: 通过1、Cookie 2、通过Session会话保存。

  • 相关阅读:
    Chromium之文件类型
    To Chromium之浏览器外框UI(2)
    union的代码有点难理解额
    Graphic的一些基本概念
    windbg*****************************TBD
    x86/x64的stack*****************************TBD
    关于tp框架终于有点点头目了、、、、
    学习使用thinkphp框架制作cms
    我只是一名小小的员工
    每天读5分钟,受益匪浅、
  • 原文地址:https://www.cnblogs.com/shengyin/p/12176251.html
Copyright © 2020-2023  润新知