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基础知识(2)----动态代理

    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. [No000016D]把知识种进脑子:像读教材一样读书

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

随机推荐

  1. 90. Subsets II

    题目: Given a collection of integers that might contain duplicates, nums, return all possible subsets. ...

  2. ubuntu服务器/home/分区替换3T硬盘

    一,关机,将硬盘连接到主机. 二,开机 1,查看/dev/ 是否有多余的sdb 注,sda,sdb可以直接看做一整块硬盘. 而sda1,sda2即sda硬盘上的分区. 2,执行fdisk –l,确保添 ...

  3. HTTP Basic Authorization

    在HTTP中,Basic Authorization基本认证是一种用来允许Web浏览器或其他客户端程序在请求时提供用户名和口令形式的身份凭证的一种登录验证方式. 在发送之前是以用户名追加一个冒号然后串 ...

  4. RestTemplateIntegrationTests

    摘录RestTemplate的集成测试类/* 2.    * Copyright 2002-2010 the original author or authors. 3.    * 4.    * L ...

  5. 【原创】30分钟入门 github

    很久没更新了,这篇文章重点在github的入门使用,读者可以下载github for windows shell,边看边操作,加深印象. 好了,30分钟的愉快之旅开始吧: 一.github使用的注意事 ...

  6. Android权限安全(7)binder,service,zygote安全相关简介

    binder 提供服务的service中的binder thread 检查调用者的uid 不是root,system就异常. service 也检查调用者的uid 不是root,system,只能注册 ...

  7. C#6.0 VS2015

    https://msdn.microsoft.com/en-us/library/hh156499(v=vs.140).aspx This page lists key feature names f ...

  8. Asp.Net微信登录-手机网站APP应用

    要求:公众号必须先认证,认证费用¥300/年,比较黑 一.微信登录核心代码 //核心代码,没判断异常 1.登录页面 protected void Page_Load(object sender, Ev ...

  9. RecyclerView 结合 CardView 使用(二)

    上一篇的基础上,修改了,CardView的布局和点击效果 总结: CardView的奇葩属性 :app:cardPreventCornerOverlap="false" 和园角边框 ...

  10. Java [Leetcode 67]Add Binary

    题目描述: Given two binary strings, return their sum (also a binary string). For example,a = "11&qu ...