HTTP 基础知识
HTTP是一种协议。HTTP使用流程,一般情况下,
第一:由HTTP客户端发出请求,创建端口。
第二:HTTP服务器在端口监听客户端的请求。
第三:一旦收到请求,HTTP服务器向客户端返回状态和内容。
当输入网址后搜索,计算机和浏览器就做了很多的事,首先呢就是域名解析了。
域名解析第一步:浏览器先搜索自身的DNS缓存,
第二步:搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效)
第三步:读取本地的HOST文件
第四步:浏览器发起一个DNS的一个系统调用:
1.宽带运营商服务器查看本身缓存
2.宽带运营商服务器发起一个迭代DNS解析的请求,运营商服务器把结果返回操作系统内核同时缓存起来,操作系统内核把结果返回浏览器,最终浏览器拿到了一个网站所对应的IP地址。
第五步:浏览器获得域名对应的IP地址后,发给HTTP的“三次握手”。
第六步:TCO/IP连接建立后,浏览器就可以向服务器发送HTTP请求了。如:用HTTP的GET方法请求了一个根域里的一个域名,协议可以采用HTTP1.0的一个协议。
第七步:服务器端接收到了这个请求,根据路径参数经过后端的一些处理后,把处理的结果的数据返回浏览器。如一个网页,就返回完整的HTML代码。
第八步:浏览器拿到了结果后,就开始加载网页。
HTTP协议定义了八种方法:
1.GET:常用于请求加载信息,如:打开一个网页,客户端向服务器请求网页的HTML.CSS,JS代码等....
2.POST:常用于新建信息。
3.PUT:常用于更新信息,如:用户更新头像等
4.DELETE:删除,请求服务器来删除我们标识的某个资源
5.HEAD:和GET方法类似,向服务器发出指定某个的请求,但服务器不返回全部的信息
6.TRACE:由于不是常用,有兴趣可以上网查找资料
7.OPTIONS:由于不是常用,有兴趣可以上网查找资料。
.....
HTTP 基础知识的更多相关文章
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(五) - 复杂查询
SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...
- APP测试入门篇之APP基础知识(001)
前言 最近两月比较多的事情混杂在一起,静不下心来写点东西,月初想发表一遍接口测试的总结,或者APP测试相关的内容,一晃就月底了,总结提炼一时半会也整不完.放几个早年总结内部培训PPT出来 ...
随机推荐
- dyld 加载 Mach-O
➠更多技术干货请戳:听云博客 前言 最近看 ObjC的runtime 是怎么实现 +load 钩子函数的实现.进而引申分析了 dyld 处理 Mach-O 的这部分机制. 1.简单分析 Mach-O ...
- 【代码笔记】iOS-验证手机号,邮箱,车牌号是否合法
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...
- swift学习笔记4——扩展、协议
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...
- (十三)Maven插件解析运行机制
这里给大家详细说一下Maven的运行机制,让大家不仅知其然,更知其所以然. 1.插件保存在哪里? 与我们所依赖的构件一样,插件也是基于坐标保存在我们的Maven仓库当中的.在用到插件的时候会先从本地仓 ...
- 一款MVC5+EF+Bootstrap搭建的后台通用管理系统模板
最近闲来无事,就用MVC5+EF+Bootstrap搭建了一个通用的后台管理系统的模板,里面使用到的技术包括: MVC,EF,T4模板批量生成 Jquery,jqGrid Bootstrap DDD ...
- ajax请求成功后打开新开窗口(window.open())被拦截的解决方法
问题:今天在做项目时需要在ajax请求成功后打开一个新的窗口,此时遇到浏览拦截了新窗口的问题,尝试在ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('clic ...
- webform Repeater重复器、地址栏传值、Response
Repeater: 重复器 <HeaderTemplate></HeaderTemplate> - 头模板:在循环开始时,其内容只会打印一遍 <ItemTemplate& ...
- 【repost】document.write的用处
document.write的用处 document.write是JavaScript中对document.open所开启的文档流(document stream操作的API方法,它能够直接在文档流中 ...
- SQL操作符
Oracle中的操作符算术操作符:无论是在sqlserver,或者是java中,每种语言它都有算术操作符,大同小异. Oracle中算术操作符(+)(-)(*)(/) 值得注意的是:/ 在oracle ...
- C++类继承关系视图的自动生成
原创文章,转载请注明出处. 工欲善其事,必先利其器.阅读大型C++工程项目,如果有一些自动化的分析工具支持,学习的效率将大大提升.在前文中介绍了Source Insight在Linux下的安装方法,本 ...