http协议

互联网 :物理连接介质+互联网协议

建立目的:打破地域限制传输数据    

上网:浏览器 向服务端发送请求 ,然后得到响应。

http:超文本传输协议 ,工作于B/S架构上,基于   tcp/ip通信 协议来传递 数据

 无状态性:每个事务独立进行,事务 结束后就释放这个连接

http1.1 引入 了许多关键 性能优化:keeppalive,请求     流水线,chunked编码传输,字节范围等

1.keepalive    长连接 :允许 在 事务 结束 之后将    TCP连接保持在打开的 状态,以便未来的http请求 重用现在的连接

2  pipelining 请求流水线,支持持久连接的客户端可以流水线它的请求,服务器 必须  按照

与收到请求的相同顺序来 向这些请求 发送响应  

3 chunked 编码传输 

该编码将实体分块 传送并逐块标明长度为0表示 传输结束

当响应头里包含Transfer-Encoding: chunked,代表分块编码,会把「报文」分割成若干个大小已知的块,
块之间是紧挨着发送的,这样就不需要在发送之前知道整个报文的大小了,也意味着不需要写回Content-Length首部了。
除非使用了分块编码Transfer-Encoding: chunked,否则响应头首部必须使用Content-Length首部
Accept-Encoding': 'gzip'压缩格式

URL:http使用统一资源 标识符来传输数据和建立连接
URL:是一种特殊类型的URL,用于互联网 上用来标识某一处资源 的地址
http://www.aspxfans.com:8080/news/index.asp?boardID=5&ID=24618&page=1#name
完整的url包括 协议 部分http://              ftp://不写会浏览器自动补全
域名部分:www.baidu.com 也可以使用ip地址
端口部分:8080 域名和端口之前用:做为 分隔符,省略默认端口80

虚拟目录部分:/news/
从域名后的第一个“/”开始到最后一个“/”为止,是虚拟目录部分。

===>虚拟目录也不是一个URL必须的部分。

文件部分:index。asp,从域名最后一个/为止到?为止,没有?就到#号,没有#就到最后一个/为止都是文件部分

参数部分:
boardID=5&ID=24618&page=1 从?到#的部分为 参数部分,也称为 查询部分 可多个查询,参数之间用&分隔

锚部分:#name,从#开始到结束都是锚部分




http请求方法主要有get 和 post请求两种

参数 组织的方式不同,get 提交的数据会放在url之后,以?分隔url 和传输数据,参数之间用&相连,
post是把提交的数据放在fttp包的boby中,post提交,地址栏不会变

传输数据大小限制,get 2K左右 post 无限制
安全性 post 高



http协议 无连接特性 :当某个客户机在短时间多次次请求同一个资源,服务器并不能区别是否已经响应过用户的请求。
这里的连接  是 针对tcp协议的     

非持久连接 :
请求一个HTTP请求/响应需要的总时间=客户端发出建立连接+发生请求报文+服务器传输HTML文件的时间

持久连接:
服务器在发送响应后,保持该TCP连接打开。在相同的客户机与服务器之间的后续请求和响应报文通过相同的连接进行传送。不需要再次建立tcp连接 


http 无状态特性:就是说无法保存客户机信息
无状态优点:在服务器不需要之前的信息时它的应答就快 。
无状态缺点:缺少状态 就是后面需要之前的信息时,它必须重传。这样可能导致每次连接传送的数据量增大
关于http无状态阻碍了交互式应用程序的实现。比如记录用户浏览哪些网页、判断用户是否拥有权限访问等。
于是,两种用于保持HTTP状态的技术就应运而生了,一个是Cookie,而另一个则是Session。






























原文地址:https://www.cnblogs.com/zhaoweihang/p/9076886.html