HTTP协议

什么是HTTP协议(超文本传输协议)

浏览器向服务器请求数据的传输协议就是HTTP协议,用于浏览器和服务器间的通信。
在这里插入图片描述

浏览器请求

在这里插入图片描述

请求格式

在这里插入图片描述
在这里插入图片描述
注意:每个Header一行一个,换行符是\r\n ,当遇到连续两个\r\n时,Header部分结束,后面的数据全部是Body 。

GET表示一个读取请求,将从服务器获得网页数据,/表示URL的路径,URL总是以/开头,/就表示首页,最后的HTTP/1.1指示采用的HTTP协议版本是1.1。目前HTTP协议的版本就是1.1,但是大部分服务器也支持1.0版本,主要区别在于1.1版本允许多个HTTP请求复用一个TCP连接,以加快传输速度。

服务器响应

找到Response Headers,点击view source,显示服务器返回的原始响应数据
在这里插入图片描述
HTTP响应分为Header和Body两部分(Body是可选项) ,200表示一个成功的响应,后面的OK是说明。
response返回的body数据就是网页源码
在这里插入图片描述
注意:浏览器就是依靠Content-Type来判断响应的内容是网页还是图片,是视频还是音乐。浏览器并不靠URL来判断响应的内容,所以,即使URL是http://www.baidu.com/meimei.jpg,它也不一定就是图片。

浏览器解析过程

当浏览器读取到新浪首页的HTML源码后,它会解析HTML,显示页面,然后,根据HTML里面的各种链接,再发送HTTP请求给新浪服务器,拿到相应的图片、视频、Flash、JavaScript脚本、CSS等各种资源,最终显示出一个完整的页面。所以我们在Network下面能看到很多额外的HTTP请求。
在这里插入图片描述

流程

步骤1:浏览器首先向服务器发送HTTP请求,请求包括:
在这里插入图片描述
步骤2:服务器向浏览器返回HTTP响应,响应包括:
在这里插入图片描述

 200 OK
    	Header1: Value1
    	Header2: Value2
    	Header3: Value3
    
    	body data goes here...
    ```
    HTTP响应如果包含body,也是通过\r\n\r\n来分隔的。
    
    请再次注意,Body的数据类型由Content-Type头来确定,如果是网页,Body就是文本,如果是图片,Body就是图片的二进制数据。
    
    当存在Content-Encoding时,Body数据是被压缩的,最常见的压缩方式是gzip,所以,看到Content-Encoding: gzip时,需要将Body数据先解压缩,才能得到真正的数据。压缩的目的在于减少Body的大小,加快网络传输。

步骤3:如果浏览器还需要继续向服务器请求其他资源,比如图片,就再次发出HTTP请求,重复步骤1、2
在这里插入图片描述

HTTP状态码

类型
在这里插入图片描述
常见HTTP状态码列表

  • 200 - 请求成功
  • 301 - 网页等资源被永久转移到其它URL
  • 302 - 网页等资源被临时转移到其它URL
  • 404 - 请求的资源(网页等)不存在
  • 500 - 内部服务器错误
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值