http协议简析(一)
HTTP:hype-text transfer protocol,超文本传输协议,超文本(html)在网络间(电脑与电脑之间)传输过程中所遵循的一些规则。
两台电脑之间要实现数据传输的条件
1.两台电脑必须要互联(通过网线:TCP/IP)
2.数据的传输要遵循HTTP协议。(B/S结构的系统)
HTTP协议特点
支持客户/服务器模式:不限于b/s结构,凡是b/s结构都必须遵循HTTO协议
简单快速:只需请求方法和路径。如(http://www.fang.com/ask)其中http是请求方法
灵活【任意数据】:可以传输任意数据
无连接【每次连接只处理一个请求】:每次请求值会处理一次,返回一个结果,需要再获取其他数据就必须重新请求
无状态:服务器在处理两次请求的时候区分不出来是否两个请求来自同一个浏览器(所以存在session和cookie技术)
URL和URI的区别:
URL:统一资源定位,指的是通过http协议,以及服务器的所在域名加上对应文件的路径组成的一个网络绝对路径
例:http://www.fang.com/ask/daily.html
URI:uniformed resource identifier,统一资源标识,指的是一个文件在网站服务器相对网站根目录的路径
如:/ask/daily.html
当我们发送一个请求时都在了哪些事情呢?
1.找hosts文件,匹配ip地址,如果本地hosts文件匹配成功会返回对应的ip,如果失败了会去外网的DNS服务器去匹配IP地址
2.浏览器封装http请求协议
2.1协议封装的内容:
host:请求域名
请求文件
3.通过http协议传输请求,发给对应ip的电脑,web请求默认端口80,apache通过监听,获取请求,进行处理
4.apache封装http响应协议,并将数据交给客户端浏览器
5.浏览器拿到数据后解析http协议,解析内容,显示内容。
如图:
HTTP协议
http协议分为两个部分:http请求,http响应
http请求:
http请求分为四个部分:
请求行:包含三部分内容
请求方式:GET/POST
URI:要请求的文件路径
协议版本:HTTP/1.1
请求头:请求头就是一项一项的规范(协议的真正内容),一个内容占一行,常见如下:
host:所请求的主机地址
accept-encoding:可以接受的数据的编码,是什么流文件(文件内容)
referer:引用,指从哪个界面过来的(跳转过来)
connection:连接,在本次请求的过程中,直到服务器把数据全部交还给浏览器,两者之间一直保持连接状态
accept-language:浏览器可以接受的语言
cookie:浏览器携带提供给服务器的cookie数据(报存在浏览器cookie中的数据)
user-agent:浏览器信息
accept:浏览器可以接收服务器返回的数据类型
content-length(post):浏览器交给服务器的数据长度
if-modified-since(get):表示浏览器当前访问过某个界面,而进行再次访问,该时间是上次请求缓存文件的时间
content-type(post):提交的文件的类型
空行:用于区分请求头和请求体。
请求体:只有post提交数据的时候才会有信息