一次完整的http请求过程

Http目前协议版本是1.1,HTTP是一种无状态的协议,无状态是指Web浏览器与Web服务器之间,不需要建立持久的链接,这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应(response),链接就被关闭了,在服务器端不保留链接的有关信息。

1.建立TCP链接

在HTTP工作前,首先浏览器与服务器建立链接,该链接是通过TCP完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议方案。一般TCP连接端口号是80。

打开浏览器,地址栏输入blog.csdn.net,开始进行域名解解析:

(1).浏览器自身搜dns缓存

(2).搜索操作系统的dns缓存

(3).读取本地host文件

浏览器发起一个dns系统调用,浏览器获得域名对应的ip地址后,发起一个http三次握手

tcp/ip链接建立起来后,服务器端接受到请求,根据路径参数,经过后端的处理后,把处理后的结果返回给浏览器,浏览器拿到html页面代码,解析和渲染页面,里面的js、css图片资源都需要经过上面的步骤。

2.Web浏览器向服务器发送请求命令

例如:GRT/sample/hello.jsp HTTP/1.1

3.Web浏览器发送请求头信息

浏览器发送请求命令后,还要以头信息的形式向Web服务器发送一些别的信息,之后浏览器发送一空白行通知服务器,它已经结束了该头信息的发送。

4.Web服务器应答

应答的第一部分是协议的版本号和应答状态码

如:HTTP/1.1  200OK

5.服务器发送应答头信息(关于服务器自己的数据)

6.服务器向浏览器发送数据

服务器发送头信息后,它会发送一个空白行来表示头信息发送到此为止,接着以Content-Type应答头信息所描述的格式发送用户所请求的实际数据。

7.关闭TCP连接

如果浏览器或服务器在其头信息加入了这行代码,Connection:keep-alive,TCP连接在发送后仍然保持打开状态

 

HTTP请求信息由3部分组成

1.请求方法URL  协议/版本                  GET/sample.jsp  HTTP/1.1

2.请求头(包含客户端环境、浏览器所用语言、正文长度等)

3.请求正文(包含客户提交的查询字符串信息)  userName=qwe&passWord=123

HTTP响应3个部分构成

1.协议状态版本      HTTP/1.1  200OK

2.响应头(服务器类型、日期时间、内容类型、长度等)     Server:Apache Tomcat/5.0.12   Content-Type:text/html

3.响应正文

<html>

<head>

<title>HTTP响应示例</title>

</head>

</html>

响应头和正文之间也必须用空行分割

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值