HTTP Protocol 1.1
例子
- 客户端调用接口 ( Client Server )
- 输入URL后,浏览器到底做了些什么
- ajax
- 浏览器缓存.....
都与http协议有关。
http协议的基本组成。
- http是基于tcp协议的(特征是:1、有三次握手即有连接过程 2、无状态 3、...)
http协议内容有两部分
1、 HTTP Header
2、 HTTP Body
千万要注意,不要和HTML搞混了。
Header除了第一行之外,就是一些Key-Value的属性设置
Key: Value
Body你都可以看做是二进制数据。只是根据Content-Type的不同做不同处理。
HTTP请求流程
Request(请求) -> 服务器
Response(响应) <- 服务器
图1.
HTTP METHOD:
1. GET
2. POST
3. PUT 常见于RESTful
4. DELETE 常见于RESTful
5. HEAD
6. OPTION
Request
基于URL的请求特征 (常用于GET)
会把queryString(也被称作http parameter) ?key1=value1&key2=value2&key3=value3
接到url后面
优势:
简单。
劣势:
1、url长度有限(256个字符)
2、保密性极差(明文)
基于HttpBody的请求特征 (常用于POST)
会把queryString写到httpBody里面
图2.
看见HTTP头和HTTP Body当中有一个空白行分割
所有的数据写在http body中。
优势:
1. 保密性好。
2. 可以传较多数据。(只要指定Content-Length属性)
劣势:
麻烦
Response
HTTP头: 状态码(404 500 200 304) body长度(Content-Length) 缓存控制(给浏览器用) 数据编码 请求的数据 等等。
关于数据的属性,都在Http Header里(是否GZIP压缩,文本编码之类的)。
数据本身就在HttpBody里。
特殊的情况:
Request你也可以往body里面传文件(而且可以是多个文件)。
1、multipart/form-data (Content-Type)
2、boundary的概念
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。