HTTP知识填坑
.note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB","STHeiti","Microsoft YaHei","WenQuanYi Micro Hei",SimSun,Song,sans-serif;}
.note-content h2 {line-height: 1.6; color: #0AA89E;}
.note-content {background: #FFFFFF;}
.note-content h1 {color: #7AB3A7;}
.note-content h3 {color: #147A67;}
HTTP知识填坑
什么是HTTP及相关知识
HTTP就是一种协议,计算机之间要遵守这种协议的规则,彼此之间相互通信,但是现在也不局限于计算机了,手机、电视、冰箱等智能终端都可以。
那么这个协议的使用流程是什么样的?
- http客户端发起请求,创建端口
- http服务器在端口监听客户端请求
- 一旦收到请求,http服务器向客户端返回状态和内容
具体步骤:
- 浏览器搜索自身的DNS缓存
- 搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已经失效)
○ 如何查看chrome内的dns缓存?
在chrome浏览器地址栏中输入
1.chrome://net-internals/#dns
那么就可以查看你曾经浏览过网站的目录。
- 读取本地的HOST文件
- 浏览器发起一个DNS的一个系统调用(具体请看之前的 linux网络管理——DNS作用)
- 浏览器获得域名对应的IP地址后,发起HTTP “三次握手”
- TCP/IP连接建立起来后,浏览器就可以向服务器发送HTTP请求了,使用比如说,用HTTP的GET方法请求一个根域里的一个域名,协议可以采HTTP 1.0的一个协议
- 服务器端接受到了这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,如果是腾讯的页面就会把完整的HTML页面代码返回给浏览器
- 浏览器拿到了腾讯的完整的HTML页面代码,在解析和渲染这个页面的时候,里面的JS、CSS、图片静态资源,他们同样也是一个个HTTP请求都需要经过上面的主要的七个步骤
- 浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给了用户
其实我们可以把一整个HTTP流程拆分开,拆分开为请求和响应。无论是请求和响应,都会发送http头和正文信息
HTTP头发送的是一些附加的信息:内容类型、服务器发送响应的日期、HTTP状态码
正文就是用户提交的表单数据
通过审查元素能找到耗时,通过分析timing能分析网站加载慢的原因
查看请求状态码跟响应的方法
请求方法:GET(读取数据)、POST(提交数据)、PUT(上传资源)、DELETE(删除)、HEAD、TRACE、OPTIONS…
状态码(返回浏览器,告诉浏览器请求是否成功失败),一般由三位数组成:1xx(表示请求已经接收,进行处理)、2xx(表示请求已经接收,并且成功处理掉了)、3xx(重定向,表示要完成一个请求还需要进一步的操作)、4xx(出现错误,请求有语法错误或者无法实现)、5xx(服务器端无法实现请求)