HTTP协议入门要点
应用层协议、基于tcp
HTTP/0.9
命令
GET
特点
- 服务器只能回应HTML字符串
- 服务器发送完毕后就关闭tcp连接
HTTP/1.0
命令
GET POST HEAD
特点
- 每次通信都必须包括头信息(HTTP header)
- 状态码(status code)、多字符集支持、多部分发送(multi-part type)、权限(authorization)、缓存(cache)、内容编码(content encoding)等
- Content-Type
- Content-Encoding
- 每个TCP连接只能发送一个请求(用Connection: keep-alive解决)
HTTP/1.1
命令
GET POST PUT PATCH HEAD OPTIONS DELETE
特点
- 持久连接,tcp连接默认不关闭,可被多个请求复用
- 管道机制,在同一个tcp连接中,客户端可以同时发送多个请求(但服务器还是按顺序回应请求)
- Content-Length
- 分块传输,Transfer-Encoding: chunked,用来传输动态操作的数据,可不指定Content-Length
- header里新增Host字段指定服务器的域名
- 队头堵塞,同一个tcp连接里,数据通信是按次序进行的,服务器只有处理完一个回应才会进行下一个回应
SPDY
特点
- Google大佬自行研发的协议
- 主要解决HTTP/1.1效率不高的问题
- 作为HTTP/2的基础
HTTP/2
特点
- 二进制协议,头信息和数据体都是二进制,统称为 帧
- 多工,客户端和服务器都可以同时发送多个请求或回应,且不用按照顺序
- 数据流,同一个连接里连续的数据包可能属于不同的回应,因此需要给数据流(每个请求或回应的所有数据包)编号,客户端发出的数据流ID一律为奇数,服务器发出的ID为偶数
- 头信息压缩,使用gzip或compress压缩,客户端和服务器共同维护一张表,生成索引号,只发送索引号
- 服务器推送,服务器可主动向客户端发送资源,比如主动发送js、css等静态资源,不必等服务端解析HTML后发起请求
参考
HTTP协议入门要点的更多相关文章
- internet协议入门
		前言 劳于读书,逸于作文. 原文地址:internet协议入门 博主博客地址:Damonare的个人博客 博主之前写过一篇博客:网络协议分析,在这篇博客里通过抓包,具体的分析了不同网络协议的传送的数据 ... 
- Network - 互联网协议入门
		珠玉在前,不在赘言 互联网协议入门(一) 互联网协议入门(二) 通信协议:HTTP.TCP.UDP 互联网协议入门 互联网协议入门深入 当你输入一个网址,实际会发生什么? Wireshark基本介绍和 ... 
- SNMP协议入门
		SNMP协议入门 1.引言 基于TCP/IP的网络管理包含3个组成部分: 1) 一个管理信息库MIB(Management Information Base).管理信息库包含所有代理进程的所有可被查询 ... 
- Http协议入门、响应与请求行、HttpServletRequest对象的使用、请求参数获取和编码问题
		1 课程回顾 web入门 1)web服务软件作用: 把本地资源共享给外部访问 2)tomcat服务器基本操作 : 启动: %tomcat%/bin/startup.bat 关闭: %tomcat%/ ... 
- 通信—HTTP 协议入门(转载)
		HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等). HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于199 ... 
- HTTP协议入门(一)- 版本
		当我们在浏览器的地址栏输入URL后,信息会被发送到WEB服务器,服务器得到响应,将数据传输回来,展示到WEB页面上,这其中的传输方法就是HTTP协议. 一.HTTP 0.9 发布于1991年,是首个H ... 
- TCP/IP协议入门
		TCP/IP协议入门 1. 简介 Transmission Control Protocol/Internet Protocol的简写,即传输控制协议/因特网互联协议.它是网络通信的一套协议集合. 先 ... 
- http协议入门---转载
		http协议入门 ##(一). HTTP/0.9 HTTP 是基于 TCP/IP 协议的应用层协议.它不涉及数据包(packet)传输,主要规定了客户端和服务器之间的通信格式,默认使用80端口. 最早 ... 
- LDAP协议入门
		LDAP协议入门(轻型目录访问协议) LDAP简介 轻型目录访问协议,全称:Lightweight Directory Access Protocol,缩写:LDAP,它是基于X.500标准的,但是简 ... 
随机推荐
- Python 2/3 安装与运行环境设置
			Python 2/3 安装与运行环境设置: 1.Python 软件源:https://www.python.org/ 下载Win版本 https://www.python.org/downloa ... 
- 【krpano】krpano xml资源解密(破解)软件说明与下载(v1.4)
			欢迎加入qq群551278936讨论krpano技术以及获取最新软件. 该软件已经不再维护,现在已经被KRPano资源分析工具取代,详情参见 http://www.cnblogs.com/reac ... 
- 最常用的ES6特性(转)
			最常用的ES6特性 let, const, class, extends, super, arrow functions, template string, destructuring, defaul ... 
- 正则表达式 判断 ip:端口 形式
			<html> <head> </head> <body> ip:port<input type="" name="z ... 
- js学习进阶中-bind()方法
			有次面试遇到的,也是没说清楚具体的作用,感觉自己现在还是没有深刻的理解! bind():绑定事件类型和处理函数到DOM element(父元素上) live():绑定事件到根节点上,(document ... 
- Erlang--proplists结构解析
			proplists 模块适用数据量较少的场景,处理配置文件和函数选项时常用.proplists对内部数据结构是Key-Value键值对形式,第一个元素做key用来查询和删除,如果一个key有多个值就会 ... 
- Android开发之MVP模式的使用
			前几天发现,在Android项目代码里有一个Activity类行数居然有1000多行,而600行左右都是逻辑控制,真正和页面控件处理相关的代码不多,虽然可以用#region <>...#e ... 
- Docker和Docker-compose安装教程以及docker-elk,docker-storm安装教程
			此安装教程仅供我自己安装配置时查看,其他的人不可以偷看!!! 安装Docker 1. Update package information, ensure that APT works with th ... 
- ***Linux下使用git命令及github项目
			在linux下搭建git环境1.创建Github账号,https://github.com2.Linux创建SSH密钥: ssh-keygen ##一直默认就可以了 3.将公钥加入到Github账户 ... 
- Blender 之 Splash 代码分析
			注:以下内容基于 Blender 2.7x 版本工程,其它低版本可能有改动. Blender启动完成时,会出现一个画面,英文叫Splash.默认是打开的,可以在设置里关闭.在文件菜单里点击用户首选项( ... 
