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工作原理的主要内容,如果未能解决你的问题,请参考以下文章

HTTP1.0工作原理

HTTP工作原理

JAVA三框架工作原理是啥?

http的工作原理

JVM工作原理

quarze的工作原理