http工作原理
Posted baixinl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了http工作原理相关的知识,希望对你有一定的参考价值。
http 超文本传输协议
www服务器传输超文本到本地浏览器的传输协议
(详情请参考(本文参考于)http://www.360doc.com/content/13/0422/16/3777348_280148022.shtml)
计算机间的通信
tcp:传输控制协议
ip :网际协议
ip协议
ip协议是计算机用来相互识别的机制。
每台计算机在internet上都有一个ip,通过识别ip可以定向传输和发送数据包,但是这个协议不保证包到达的顺序和完整性(只检查关键的头数据)
tcp协议
tcp协议确保包的到达顺序,并尝试检查包又没改变。
tcp负责将信息包切割,在到达时进行重组。
tcp在ip上引入端口,部分端口被保留,用于一些服务。例如80端口用于www的http通信流出。
但一个应用程序想通过tcp与另一应用程序通信,流程:
发一个请求(必须用切确的地址)(握手);
握手成功后,tcp会在两应用程序之间建立一个全双工的通信,占用两个应用程序的通信线路。
tcp/ip协议
tcp/ip就是两个协议的协同工作。
tcp负责应用程序间的通信,ip负责计算机间的通信。
过程tcp将数据包切割并放入ip包中,ip负责将包发送到接收者处(IP路由寻址),到达后tcp将数据包进行重组。
http 协议基于tcp/ip
http是由请求和响应组成 ,请求/应答模型。是一个标准的客户端服务器的模型(B/S)。所以http协议永远是由客户端发起的,服务器响应。
http是一个无状态协议,客户端与服务器端不需要长连接。一次请求和响应完成后,连接就会关闭。在服务器端不保存任务连接信息。
http工作过程
过程:
1.地址解析:
客户端访问某url,从url解析出 协议名 主机号 端口号 对象路径 ,如:
url: http://47.52.97.152:3000/index.html
协议名:http
主机号:47.52.97.152 (注:如果主机号处是域名,还要进行域名解析(dns系统解析)为ip)
端口号:3000
对象路径:/index.html
2.封装成http请求包:
将地址解析的信息和本机信息,封装成一个http请求包
3.封装成tcp包,建立tcp连接(3次握手)
4.客户端发送请求
5.服务端响应
6.服务器关闭请求连接
但如果浏览器或服务器端在头信息中加入connection:keep-alive,此次连接将保持连接,之后的请求可以继续通过此次的连接进行通信,节省请求新连接时间,节省带宽。但设置设置为connection:close就会中断。
http 1.0中默认是关闭的,需要在http头加入"Connection: Keep-Alive",才能启用Keep-Alive;http 1.1中默认启用Keep-Alive,如果加入"Connection: close ",才关闭。目前大部分浏览器都是用http1.1协议,也就是说默认都会发起Keep-Alive的连接请求了,所以是否能完成一个完整的Keep-Alive连接就看服务器设置情况。
本文参考于:http://www.360doc.com/content/13/0422/16/3777348_280148022.shtml,图片来源于网络
以上是关于http工作原理的主要内容,如果未能解决你的问题,请参考以下文章