http 详解

http 就是一种通信协议,计算机之间要共同尊守这些规则才能通信


http 流程


1、http客户端发起请求,创建端口 

2、http服务器就在端口监听客户端请求

3、监听到后,http服务器向客户端返回状态和内容 (如:200  然后返回请求的文件。。详解如下)

浏览器的流程

1、输入网址后,浏览器先搜索自身的 DNS 缓存  (前面4步都是为了解析域名拿到对应的 ip 地址)

2、搜索操作系统自身的 DNS 缓存 (第一步没有找到或者缓存已经失效)
3、读取本地的 HOST(历史) 文件 (上面的都没有找到)
4、浏览器发起一个 DNS 的系统调用,就是向宽带运营商发起一个域名解析请求

运营商
4.1、宽带运营商服务器查看本身缓存,找到对应的条目,如果没有过期就解析成功了,不成功再向下走
4.2、运营商服务器代替我们的浏览器发起一个 DNS 解析请求,拿到域名对应的 IP 地址,把结果返回操作系统内核同时缓存起来
4.3、操作系统内核把结果返回给浏览器
4.4、浏览器拿到域名对应的 IP 地址
5、浏览器获得域名对应的 IP 地址后,发起 Http "三次握手"(大概是客户端问服务,咱们能不能通信什么的),浏览器通过端口发起 TCP连接请求 ,TCP再能过长长的路由进到服务器网卡->内核等等,最终进入到
web 服务端,建立起 TCP 和 IP 的连接
6、TCP/IP连接建立起来后,浏览器就可以向服务器发送 Http 请求了,使用了比如说用Http的 Get方法请求一个根域里的一个域名,协议可以采HTTP 1.0的一个协议
7、服务器端接受到这个请求,根据路径参数,经过后端的一些处理之后,把处理后的一个结果的数据返回给浏览器,然后把完整的 html 页面代码返回给浏览器
8、浏览器拿到了完整的 HTML 页面代码,在解析和渲染的时候,里面的 js css 图片静态资源,他们同样也是一个个 HTTP 请求需要经过上面的主要的七个步骤。
9、浏览器根据拿到的资源对页面进行渲染,最终把一个完整的页面呈现给了用户


可以把一个完整的 HTTP 请求给拆分开:

1、请求。  2、响应

无论请求和响应都会发送 http 头和正文信息

1.http头发送的是一些附加的信息:内容类型、服务器发送响应的日期、http 状态码

2.正文就是用户提交的表单数据

浏览器的请求:


1. Headers 请求头(里面的信息基本能看懂)

  2.Preview 响应资源预览

3.Response 没有处理过的响应信息

  4.Timing 图形化显示每个资源消耗的时间


1.stalled  等待时间,就是浏览器要发出请求到可以发出请求之间的时间,比如配置脚本以及等待可复用的 TCP连接释放的时间,不包含 DNS 查询和TCP建立的时间

                2. Request sent 请求的第一个字节发出到最后一个字节发出的时间,就是发出请求的时间

                3.Waiting(TTFB) 请求发出后到收到响应的时间,包括数据传输,服务器处理和服务器返回传输的时间

4.content Download  收到响应数据第一个字节到最后一个字节的时间,就是接收数据的时间


请求方法

  1.GET       打开网站拿到html 页面的都是get请求,获取,请取

2.POST    提交数据

3.PUT      更新,向指定的资源上传一个内容,比如说更新头像,替换一个视频什么的(很少见……)

4.DELETE    删除,请求服务器删除某个资源

5.HEAD    和get 一样,好处就是不用传入全部内容,就可以获取原信息,原数据……(没用过)

6.TRADE

7.OPTIONS

状态码

1XX     请求已经接收,正在处理

2XX    请求已经成功,处理掉了

3XX     重定向,就是要完成这个要进行更多操作

4XX     客户端错误,请求错误或者这个请求无法操作

5XX     服务端错误

200  ok 成功    

400客户端语法错误或者服务端不能理解

401这个请求没有经过授权 

403服务端收到请求,但拒绝服务,没有权限等等

404资源不存在

500服务端发现一个不可预知的错误

503服务端当前还不能处理这个请求


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值