HTTP相关知识
2015-12-02 20:47
567 查看
一、什么是HTTP?
HTTP就是一种协议(protocal),计算机之间只有遵循这种协议才能相互通信。
二、HTTP在使用场景中流程
http客户端发起一个请求,创建端口
http服务器在端口监听客户端的请求
http服务器向客户端返回状态和内容
三、请求过程,以chrome浏览器为例(输入xxx.com)
1、chrome搜索自身的DNS缓存(在地址栏输入chrome://net-internals/#dns查看)
2、搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效)
3、读取本地的HOST文件
4、浏览器发起一个DNS的一个系统调用
4.1、宽带运营商服务器查看本身缓存
4.2、运营商服务器替浏览器发起一个迭代DNS解析的请求
4.21、首选先去找根域的DNS ip地址,如果没找到,可以拿到com域的顶级域的ip地址
4.2.2、从com域寻找,如果没找到,可以拿到xxx.com域的ip地址
4.2.3、xxx.com域一般是域名的注册商提供的,比如万网、新网,从这可以获取到xxx.com的IP地址
运营商服务器把结果返回操作系统内核同时缓存起来
操作系统内核把结果返回给浏览器
最终浏览器拿到了xxx.com对应的IP地址
四、浏览器获取域名对应的IP地址后,发起HTTP“三次握手”
浏览器随机端口向服务器发起请求(如果80的TCP连接请求),通过层层的路由设备到达服务端以后,到达网卡
五、TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求了,使用了比如说,用HTTP的GET方法请求一个根域里的一个域名,协议可以采用HTTP 1.0的一个协议。
六、服务器端接受到了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,
七、浏览器拿到了xx网的完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS、CSS、图片静态资源,他们同样也是一个个HTTP请求,都需要经过上面的主要的七个步骤。
八、浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给了用户
HTTP请求流程拆分开,分成请求和响应,无论请求和响应都会发送HTTP头和正文信息
HTTP头发送的是一些附加的信息:内容类型、服务器发送响应的日期、HTTP状态码
正文就是用户提交的表单数据
HTTP就是一种协议(protocal),计算机之间只有遵循这种协议才能相互通信。
二、HTTP在使用场景中流程
http客户端发起一个请求,创建端口
http服务器在端口监听客户端的请求
http服务器向客户端返回状态和内容
三、请求过程,以chrome浏览器为例(输入xxx.com)
1、chrome搜索自身的DNS缓存(在地址栏输入chrome://net-internals/#dns查看)
2、搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效)
3、读取本地的HOST文件
4、浏览器发起一个DNS的一个系统调用
4.1、宽带运营商服务器查看本身缓存
4.2、运营商服务器替浏览器发起一个迭代DNS解析的请求
4.21、首选先去找根域的DNS ip地址,如果没找到,可以拿到com域的顶级域的ip地址
4.2.2、从com域寻找,如果没找到,可以拿到xxx.com域的ip地址
4.2.3、xxx.com域一般是域名的注册商提供的,比如万网、新网,从这可以获取到xxx.com的IP地址
运营商服务器把结果返回操作系统内核同时缓存起来
操作系统内核把结果返回给浏览器
最终浏览器拿到了xxx.com对应的IP地址
四、浏览器获取域名对应的IP地址后,发起HTTP“三次握手”
浏览器随机端口向服务器发起请求(如果80的TCP连接请求),通过层层的路由设备到达服务端以后,到达网卡
五、TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求了,使用了比如说,用HTTP的GET方法请求一个根域里的一个域名,协议可以采用HTTP 1.0的一个协议。
六、服务器端接受到了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,
七、浏览器拿到了xx网的完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS、CSS、图片静态资源,他们同样也是一个个HTTP请求,都需要经过上面的主要的七个步骤。
八、浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给了用户
HTTP请求流程拆分开,分成请求和响应,无论请求和响应都会发送HTTP头和正文信息
HTTP头发送的是一些附加的信息:内容类型、服务器发送响应的日期、HTTP状态码
正文就是用户提交的表单数据
相关文章推荐
- android网络编程(一)
- 看图学网络 二 网络边缘部分的应用体系结构
- HTTP状态码
- 网络协议学习笔记-数据链路层-MTU、路径MTU和串行线路吞吐量计算
- 暂停更新,请到http://www.52brt.com上关注最新文章
- 看图学网络 一 网络的组成
- TCP/IP详解学习笔记(2)-- 数据链路层
- socket与http的区别
- HTTP Modules versus ASP.NET MVC Action Filters
- iOS UIImageView 网络加载图片自适应大小问题
- HTTP Analyzer过滤器使用
- Android中开辟线程(下载-网络连接)
- [国嵌攻略][068][tftp网络协议实现]
- 【python】网络编程-TCP协议套接字
- 推荐一些C#相关的网站、资源和书籍 (转载自http://www.cnblogs.com/jiangxiaofan/p/3808316.html)
- 【python】网络编程-套接字常用函数
- Http、TCP/IP协议与Socket之间的区别
- AFN(上传、下载)
- 服务器搭建时报错:HTTP 错误 404.2
- c#使用HttpWebRequest上传文件同时携带其他参数