本篇介绍的是一次完成的http请求都经过了那些步骤,这些步骤相应的作用又是什么

1.在浏览器端输入网站的url地址

只有知道了一个网站的url地址才能访问到这个网站

2.浏览器查找缓存

浏览器会查找浏览器缓存,系统缓存,路由缓存,如果没有的话 继续下一步,如果有的话,直接显示

注意:浏览器会把访问过得web网站资源(html 图片)缓存起来,而判断是否使用缓存的条件有以下几种:

  1. 是否有这个网站的缓存
  2. 这个网站的缓存是否过期,具体看Cache-Control 中缓存的有效时间
  3. 跟服务器进行协商是否使用缓存,如果上次缓存的时候有Last-modified 和 Etag 字段,本次请求就会加上If-Modified-Since(上次请求资源的时间)和If-None-Match(上次资源的修改时间)

3.通过DNS获取url对应的ip地址

现在本机的host文件中查找是否有这个url对应的ip,如果没有的话,就请求DNS进行ip地址的获取

4.建立TCP链接

http在工作之前,需要客户端和服务端建立链接,这个链接的建立是通过tcp(三次握手)来完成的,因为http是比tcp更高层的协议,在网络协议的建立中,不谈底层谈高层都是在耍流氓,所以想要让http进行工作,需要tcp首先建立链接

5.浏览器向web服务器发送请求

一旦链接已经建立,浏览器就可以给web服务器发送请求命令,比如 : GET/deom/hello.jsp HTTP/1.1

6.浏览器给web服务器发送请求头信息

浏览器在发送了请求后,还要给web服务器请求头信息,比如accept-charset(浏览器端指定的字符集),最后发送一个空的请求头代表请求发送完毕,注意:如果是post提交,则会继续提交请求体

7.web服务器进行应答

应答的第一部分是http版本号,第二部分是协议的状态码,比如:HTTP/1.1 200 OK

8.web服务器发送应答头消息

web服务器给浏览器发送应答头消息,也就是关于web服务器自己的信息,最后发送一个空白行代表应答结束

9.web服务器发送数据

以应答头里面的content-type所描述的格式发送数据

10.web服务器关闭链接

web服务器向浏览器发送了应答数据之后,就要关闭tcp链接(tcp四次握手关闭链接),如果添加了connection:keep-alive,那么就还会保持链接状态

原博:https://blog.csdn.net/zhttly/article/details/82832582

最新文章

  1. linux学习笔记--NFS
  2. sql拷贝表结构不拷贝表数据
  3. 配置ORACLE 客户端连接到数据库
  4. CFS: 虚拟运行时间
  5. Qt编译慢吗?
  6. 帮助中心 7D-我的私家设计师 设计师品牌服饰集成网 7D服装定制!
  7. _.remove的用法
  8. SQL Server 中大小写区分的处理
  9. JavaScript的数据类型问题总结
  10. Python爬取谷歌街景图片
  11. poj3984 广度搜索BFS
  12. 数据结构之二叉搜索树、AVL自平衡树
  13. 20135234mqy-——信息安全系统设计基础第十二周学习总结
  14. python 之九九乘法表
  15. modelsim仿真中Altera库的用法
  16. Win7中安装EclipsePHP
  17. 如何fork比特币的源码并同步更新到本地
  18. SharePoint_Config_Log file size
  19. expect使用小结
  20. 常见的media断点

热门文章

  1. Tracking-Learning-Detection (TLD算法总结)
  2. win10锁住鼠标和键盘操作。
  3. Windows常用网络命令(3)
  4. mycat实现读写分离
  5. sql查询出现1055 this is incompatible with sql_mode=only_full_group_by
  6. MongoDB初始化创建管理员账户登录
  7. go 疑难杂症
  8. ORACLE存储过程,循环语法和游标
  9. NEST search查询
  10. 搭建SpriBoot开发环境