HTTP知识填补
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知识填补的更多相关文章
- 为什么JavaScript开发如此疯狂
本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! Web开发太有意思了! 但是JavaScript则……令人望而生畏. Web开发中其他一切对你而言都是小菜一碟, ...
- 《Ext JS模板与组件基本知识框架图----模板》
最近在整理Ext JS的模板和组件,在参考<Ext JS权威指南>,<Ext JS Web应用程序开发指南>,<Ext JS API>等相关书籍后才写下这篇< ...
- Github优秀java项目集合(中文版) - 涉及java所有的知识体系
Java资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-java 就是 akullpp 发起维护的 Java 资源列表,内容 ...
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...
- 基OOP知识
从今天开始,我开始总结GAO还通高老师<android道路的建筑师>,尝试一个星期写三个博客. 相对而言.看到这篇文章有点速度比你可以观看视频,刚才看的视频是更具体的.假设有兴趣,跟着我去 ...
- 学习Spring必学的Java基础知识(2)----动态代理
Spring AOP使用动态代理技术在运行期织入增强的代码,为了揭示Spring AOP底层的工作机理,有必要对涉及到的Java知识进行学习.Spring AOP使用了两种代理机制:一种是基于JDK的 ...
- 【RL-TCPnet网络教程】第2章 嵌入式网络协议栈基础知识
第2章 嵌入式网络协议栈基础知识 本章教程为大家介绍嵌入式网络协议栈基础知识,本章先让大家有一个全面的认识,后面章节中会为大家逐一讲解用到的协议. 基础知识整理自百度百科,wiki百科等 ...
- PHP之道 - php各方面的知识汇总
看到一个PHP的知识各方面的汇总,写的很有借鉴意义,搬过来了 转自: https://laravel-china.github.io/php-the-right-way/ 欢迎阅读 其他语言版本 参与 ...
- [No000016D]把知识种进脑子:像读教材一样读书
读书,常常是书读一遍,过后脑子却空白一片.旁人问起感受,只能以不错.很好作答.更有甚者,有时翻阅豆瓣才发现一本书竟早已「读过」,这事儿可真叫尴尬.为了对付这症状,我笔记也做过,思维导图也画过,奈何只是 ...
随机推荐
- 你真的了解try{ return }finally{}中的return?
你真的了解try{ return }finally{}中的return? 今天去逛论坛 时发现了一个很有趣的问题: 谁能给我我解释一下这段程序的结果为什么是:2.而不是:3 代码如下: class ...
- Invoke与BeginInvoke
一.为什么 Control类提供了 Invoke和 BeginInvoke机制? 关于这个问题的最主要的原因已经是 dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自 ...
- spring boot 1.4默认使用 hibernate validator
spring boot 1.4默认使用 hibernate validator 5.2.4 Final实现校验功能.hibernate validator 5.2.4 Final是JSR 349 Be ...
- 如何手动把jar包添加进Maven本地仓库
有以下两种情况你需要手动通过Maven命令把jar文件添加进本地仓库: 1.在中心仓库里没有你想要的jar包. 2.你自己写了一个jar包,在其他项目要用到. 补充:现在仍有很多jar包不支持Mave ...
- 即时通信Spark安装和配置
spark:Cross-platform real-time collaboration client optimized for business and organizations.Spark i ...
- DNS主配置文件的几个选项
options块中: listen-on port 监听DNS查询请求的本机IP地址及端口 eg:listen-on port 53 { 192.168.0.78 };监听本机的192. ...
- Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.
在部署的时候出现Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server ...
- C#编写媒体播放器--Microsoft的Directx提供的DirectShow组件,该组件的程序集QuartzTypeLib.dll.
使用C#编写媒体播放器时,需要用到Microsoft的Directx提供的DirectShow组件.用该组件前需要先注册程序集QuartzTypeLib.dll. 1.用QuartzTypeLib.d ...
- Linux下检查是否安装过某软件包
1.rpm包安装的,可以用 rpm -qa 看到,如果要查找某软件包是否安装,用 rpm -qa | grep "软件或者包的名字" 2.以deb包安装的,可以用 dpkg -l ...
- Oracle学习之集合运算
一.集合运算操作符 UNION:(并集)返回两个集合去掉重复值的所有的记录 UNION ALL:(并集)返回两个集合去掉重复值的所有的记录 INTERSECT:(交集)返回两个集合的所有记录,重复 ...