什么是http?
超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
http在用户端的使用过程是怎样?
电脑如何通过浏览器访问看到页面的?
1)打开浏览器软件,输入网址地址,点击回车
2)利用已知的域名信息,获得IP地址信息(DNS解析原理过程)
1.本地查找(hosts文件、缓存)
2.本地DNS服务器(电脑填写的DNS地址)
3.到根域名服务器找寻地址信息
4.顶级域名服务器
5.二级域名服务器(A记录信息:域名对应ip地址)
6.本地DNS获得到A记录之后进行缓存,将A记录发送给主机
7.主机也会缓存下来,根据已知的ip地址,进行网络路由
3)TCP三次握手建立过程(建立连接)
4)利用获得的ip地址,访问网站web服务器
客户端请求页面信息(发送HTTP请求报文过程)
服务端响应页面信息 (接受HTTP响应报文过程)
5)TCP的四次挥手过程(断开连接)
http的组成部分:
请求报文组成部分:
请求行:
1)请求方法
(get:下载:客户端请求指定资源,服务器返回指定资源)
(post:上传:将客户端数据提交到服务器)
2)HTTP协议版本信息
HTTP 1.0 短连接协议 tcp 三次握手 数据传输 四次挥手
HTTP 1.1 长连接协议 tcp 三次握手 数据传输 新的数据传输 四次挥手
请求头:
空行:
请求主体信息:
响应报文组成部分:
起始行(响应行):
1)状态码信息
100-199 用于指定客户端相应的某些动作
200-299 表示请求成功
300-399 用于已经移动的文件
400-499 用于指出客户端错误
500-599 用于指出服务端错误
状态码:
200 请求成功
301 永久跳转 所请求的网页将永久跳转到设定的新位置
302 临时跳转
403 禁止访问 预先设置规则拒绝客户端访问
404 找不到客户端请求的指定页面
500 内部服务器错误
503 服务当前不可用
响应头部:
空行:
响应主体:
HTTP资源:
URL
URI:
例子:
https://passport.jd.com / new/boyu.html
URL:域名信息 URI:请求的文件信息,或者请求文件所在服务器的路径信息
http中静态动态网站区分:
静态网站
1) 每个页面都有一个固定的URL地址,且URL一般以.html、.htm、.shtml等常见形式为后缀,
而且地址中不含有问号“?”或“&”等特殊符号
2) 网页内容一经发布到网站服务器上,无论是否有用户访问,
每个网页的内容都是保存在网站服务器文件系统上的,也就是说,
静态网页是实实在在保存在服务器上的文件实体,每个网页都是一个独立的文件。
3) 网页内容是固定不变的,因此,容易被搜索引擎收录(容易被用户找到)(优点)。
4) 因为网页没有数据库的支持,所以在网站制作和维护方面的工作量较大,
当网站信息量很大时,完全依靠静态网项比较困难(缺点)。
5) 网页的交互性较差,在程序的功能实现方面有较大的限制(缺点)
6) 网页程序在用户浏览器端解析,如IE浏览器,程序解析效率很高,
由于服务器端不进行解析,并且不需要读取数据库,
因此服务器端可以接受更多的并发访问。当客户端向服务器请求数据时,
服务器会直接从磁盘文件系统上返回数据(不做任何解析)。
待客户端拿到数据后,在测览器端解析并展现出米(优点)。
动态网站
1) 网页扩展名后缀常见为:.asp、.aspx、.php、.js、.do、.cgi等。
2) 网页一般以数据库技术为基础,大大降低了网站维护的工作量。
3) 采用动态网页技术的网站可以实现更多的功能,
如用户注册、用户登录、在线调查、投票、用户管理、订单处理、发博文等。
4) 动态网页并不是独立存在于服务器上的网页文件,
当用户请求服务器上的动态程序时,服务器解析这些程序并可能通过读取数据库米返回一个完整的网页内容
5) 动态网项中的“?”在搜索引擎的收录方面存在一定的问题,
搜索引擎一般不会从一个网站的数据库中访问全部网页,
或者出于技术等方面的考虑,搜索蜘蛛一般不会去抓取网址中“?”后而的内容,
因此在企业通过搜索引擎进行推广时,
需要针对采用动态网页的网站做一定的技术处理(伪静态技术),以便适应瘦索引擎的抓取要求。
伪静态网页
1) 吸收了动态网站大量优势
2) 弥补了动态网站最大劣势(方便被搜索引擎收录)