1

HTTP Protocol 1.1

例子

  1. 客户端调用接口 ( Client Server )
  2. 输入URL后,浏览器到底做了些什么
  3. ajax
  4. 浏览器缓存.....
    都与http协议有关。

http协议的基本组成。

  1. 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头
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.
POST请求

看见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上传文件


Gemini
7k 声望1.5k 粉丝

一个没有文化的诗人