文章目录
web开发发展历程
Python有上百种web开发框架,有很多成熟的模块技术,用Python进行web开发,开发效率高,运行速度快。
HTTP协议简介
在web应用中,服务器将网页传给服务器,实质上就是将网页的HTML代码发送给浏览器,让浏览器进行显示。浏览器和服务器之间的传输协议是HTTP,所以:
- HTML是一种用于定义网页的文本文档;
- HTTP是在网络上传输HTML的协议,用于浏览器和服务器之间的通信
实验环境
HTTP内容简介
- 打开开发者工具
在浏览器右上角处单击纵向排列的三个点—更多工具—开发者工具,或者通过快捷键optioncommondI打开:
Elements
显示了网页的结构,Network
显示浏览器和服务器之间的通信。 - 记录浏览器和服务器之间的通信
确保Network
下的小红灯亮着,灯亮即表示Chrome在记录server和browser之间的通信
- 访问网页
在地址栏输入在这里插入代码片www.sina.com.cn
,查阅浏览器的记录以了解浏览器的工作
Request Headers
首先,定位到Networks的第一条记录,在右侧的Request Headers
右边单击view source
,查看浏览器发送给服务器的请求:
GET / HTTP/1.1
GET
表示一个读取请求,浏览器请求从服务器获得网页的数据,/
表示URL的路径。URL总是以/
开头。表示首页。最后的HTTP/1.1
表示采用的HTTP协议版本为1.1.目前版本为1.1,但大部分的服务器也支持1.1版本,1.1和1.0版本的区别在,于1.1版本允许多个HTTP请求复用一个TCP连接以加快传输速度。
Host: www.sina.com.cn
该行表示请求的域名是www.sina.com.cn
。如果一台服务器有多个网站,服务器就需要使用Host
来区分浏览器的请求。
Response Headers
同样是本条记录,在右侧的ResponseHeaders
右边单击view source
,查看服务器返回给浏览器的原始响应数据:
HTTP响应分为Header和body两个部分,我们看到最重要的几行如下:
HTTP/1.1 302 Moved Temporarily
请求相应的状态,正确的响应应为HTTP/1.1 200 OK
,失败的响应有404 Not Found
:网页不存在,500 Internal Server Error
:服务器内部错误,等等。
Content-Type: text/html
响应的内容,此处为text/html
,表示HTML网页,浏览器依据Content-Type
来判断响应的内容是网页、图片、视频还是音乐。因此,即便URL是http://example.com/abc.jpg
,该内容也不一定是图片。
HTTP响应的body就是HTML源码,我们在开发者工具下点击源码
选项就可以在浏览器中查看HTML源码:
当浏览器读取到新浪首页的HTML源码之后,它会解析HTML,显示页面,然后根据HTML里面的各种链接发送HTTP请求给新浪服务器,获取相应的图片、视频、flash、JavaScript脚本、CSS等资源,最终呈现出一个完整的页面。
HTTP请求
web采用的HTTP协议使用了非常简单的请求-响应模式,大大简化了开发流程。当我们编写页面是,只需要在HTTP响应中把HTML发送出去,而不需要考虑如何附带图片、视频等内容,浏览器如果需要请求图片和视频等内容,它会发送另一个HTTP请求。因此,一个HTTP请求只处理一个资源。
HTTP协议具备极强的扩展性,虽然浏览器请求的是http://www.sina.com.cn
但是新浪在HTML中可以链入其他服务器的资源,如`,从而你将请求压力分散到各个服务器上,并且一个站点可以链接到其他站点,无数个站点互相链接起来,形成了world wide web简称“www"。
HTTP格式
每个HTTP请求和响应都遵循相同的格式,一个HTTP包含header和body两个部分,其中body是可选的。
HTTP是一种文本协议,所以格式非常简单:
HTTP GET请求格式:
GET /path HTTP/1.1
Header1: Value1
Header2: Value2
Header3: