HTTP知识填补

时间:2022-09-14 09:48:47

1、HTTP协议

HTTP协议是计算机通信的一种协议

流程:

1、http客户端发起请求,例如手机访问baidu.com,创建端口,一般位80

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

3、http接收到请求后,会给客户端返回状态和内容。

2、DNS域名解析

1、浏览器请求baidu.com,chrome首先查看自身的DNS缓存

2、搜索操作系统自身的DNs缓存查看

3、读取本地的host文件

4、浏览器发起一个DNS系统调用(向宽带运营商请求)

  4.1宽带运营商DNS服务器缓存

  4.2宽带运营商发起一个迭代DNS解析请求

    4.2.1向根域问你知道baidu.com的域名的IP地址是多少

    4.2.2根域一看是*域的IP域名,于是回复,我只知道com域的DNS服务器IP地址

    4.2.3运营商DNS服务器向com域的DNS服务器发出请求,你知道baidu.com的域名的IP地址是多少

    4.2.4com域的DNS服务器回复,我只知道baidu.com域的IP地址(域名注册商提供)

    4.2.5宽带运营商DNS服务器向baidu.com域请求,你知道baidu.com的域名的IP地址是多少,一看,真在这,将dns服务器的IP地址发送给运营商服务器,运营商服务器将IP地址缓存在操作系统中,再发送给浏览器。

    最终浏览器拿到了baidu.com的DNS服务器的IP地址

5、浏览器发起TCP请求的“三次握手”(经过层层路由)

6、Tcp/IP连接建立后,浏览器就可以向服务器发送HTTP请求,例如用HTTP的GET方法请求一个根域的一个域名,协议可以采取HTTP1.0的协议

7、服务器接收到请求,经过后端处理,将处理后的结果数据返回给浏览器。例如,将baidu.com完整的HTML页面代码返回给浏览器。

8、浏览器拿到网页的HTML代码,在解析和渲染这个页面的时候,里面的JS、CSS、图片资源,他们同样是一个个HTTP请求。都需要前面的主要七个步骤。

9、浏览器根据拿到的资源对页面进行渲染,最终得到一个完整的页面呈现给大家。

3、状态码

1xx 指示信息,代表请求接受到,准备处理

2xx 请求成功,服务器正确处理

3xx 重定向

4xx 客户端错误,服务器解析不了

5xx 服务器端的错误

具体如下:

200 成功

400 客户端错误

401 请求未经授权

403 服务器收到请求,但没有权限执行

404 请求资源不存在(URL错误)

500 服务器发生不可预知错误

503 服务器当前无法处理请求,可能过段时间就可以处理。

HTTP知识填补的更多相关文章

  1. 为什么JavaScript开发如此疯狂

    本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! Web开发太有意思了! 但是JavaScript则……令人望而生畏. Web开发中其他一切对你而言都是小菜一碟, ...

  2. 《Ext JS模板与组件基本知识框架图----模板》

    最近在整理Ext JS的模板和组件,在参考<Ext JS权威指南>,<Ext JS Web应用程序开发指南>,<Ext JS API>等相关书籍后才写下这篇< ...

  3. Github优秀java项目集合(中文版) - 涉及java所有的知识体系

    Java资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-java 就是 akullpp 发起维护的 Java 资源列表,内容 ...

  4. Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识

    第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...

  5. 基OOP知识

    从今天开始,我开始总结GAO还通高老师<android道路的建筑师>,尝试一个星期写三个博客. 相对而言.看到这篇文章有点速度比你可以观看视频,刚才看的视频是更具体的.假设有兴趣,跟着我去 ...

  6. 学习Spring必学的Java基础知识&lpar;2&rpar;----动态代理

    Spring AOP使用动态代理技术在运行期织入增强的代码,为了揭示Spring AOP底层的工作机理,有必要对涉及到的Java知识进行学习.Spring AOP使用了两种代理机制:一种是基于JDK的 ...

  7. 【RL-TCPnet网络教程】第2章 嵌入式网络协议栈基础知识

    第2章        嵌入式网络协议栈基础知识 本章教程为大家介绍嵌入式网络协议栈基础知识,本章先让大家有一个全面的认识,后面章节中会为大家逐一讲解用到的协议. 基础知识整理自百度百科,wiki百科等 ...

  8. PHP之道 - php各方面的知识汇总

    看到一个PHP的知识各方面的汇总,写的很有借鉴意义,搬过来了 转自: https://laravel-china.github.io/php-the-right-way/ 欢迎阅读 其他语言版本 参与 ...

  9. &lbrack;No000016D&rsqb;把知识种进脑子:像读教材一样读书

    读书,常常是书读一遍,过后脑子却空白一片.旁人问起感受,只能以不错.很好作答.更有甚者,有时翻阅豆瓣才发现一本书竟早已「读过」,这事儿可真叫尴尬.为了对付这症状,我笔记也做过,思维导图也画过,奈何只是 ...

随机推荐

  1. Oracle数据库迁移

    1 在数据迁移时,用户首先有权限修改数据库,并且进行表空间创建.删除等权利 例如: select * from dba_tab_privs where grantee='SCOT'; ---查看SCO ...

  2. Windows下的Objective-C集成开发环境(IDE)&lpar;转&rpar;

    Objective-C是苹果软件的编程语言,想要上机学习.调试,有一个集成开发环境(IDE)方便很多.有三类方法搭建Objective-C的集成开发环境: 1)   使用苹果的平台,集成开发环境使用X ...

  3. Xcode模拟器怎么模拟定位?

    new file --->添加一个.gpx文件 打开你的gpx文件,然后修改你想要模拟的经纬度: 运行时选上你刚才的位置

  4. Dubbo学习 概念定义

    Dubbo是什么? Dubbo[]是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封 ...

  5. (转载)shell中用date命令获取昨天、明天或者多天前的日期

    (转载)http://blog.sina.com.cn/s/blog_3e4774e30100p0yv.html 使用date命令获取日期很方便,最近需要获取当前日期的下一天日期在linux应该如何获 ...

  6. Mysql 5&period;6主从同步配置与解决方案

    主库IP:192.168.1.10 从库IP:192.168.1.11 centos的mysql配置文件在:/etc/my.cnf 1.主库配置编辑my.cnf: # 启用二进制日志 log_bin ...

  7. 使用Xshell连接Ubuntu

    使用Xshell连接Ubuntu Xshell是一个安全终端模拟软件,可以进行远程登录.我使用XShell的主要目的是在Windows环境下登录Linux终端进行编码,非常方便.本文简单介绍下它的使用 ...

  8. BASE64URL解析

    BASE64URL是一种在BASE64的基础上编码形成新的加密方式,为了编码能在网络中安全顺畅传输,需要对BASE64进行的编码,特别是互联网中. BASE64URL编码的流程: .明文使用BASE6 ...

  9. 利用Register protocol实现网页调用桌面程序&lpar;类似迅雷、QQ等&rpar;

    前言 我们经常看到 tencent://.. thunder://     这两种开头的网址,往往觉得很奇怪,很想弄懂其中的原理,是如何实现的,我查找了相关的 资料,终于找到了,跟大家分享下. 原理篇 ...

  10. springboot中关闭eureka server中已注册服务列表自我保护配置

    配置集群服务可以向eureka通知应用是否可以使用a.在eureka server的application.properties中加入:# 设为false,关闭自我保护eureka.server.en ...