1.1 Http协议
HTTP(HyperText Transfer Protocol:超文本传输协议)。
1.2 Http请求头
Http头
说明
样例
Content-Type
让服务器知道客户端数据格式
application/json
Accept
指定客户端能够接收的内容类型
*/*
accept-encoding
指定客户端浏览器可以支持的web服务器返回内容压缩编码类型
gzip
accept-language
指定HTTP客户端浏览器用来展示返回信息所优先选择的语言
zh-CN
Connection
表示是否需要持久连接
keep-alive
Host
客户端地址
Origin
目标地址
Connect-Length
请求头的长度
100
Connect-Type
显示此HTTP请求提交的内容类型
multipart/form-data
User-Agent
客户端信息
Mozilla/5.0
x-Requested-With
是否为同步请求
1.3 HTTP Method
请求方法
说明
数据库操作
post
新增 post /url 多次post不幂等
C
get
查询 get /url/id
R
put
更新 put /url/id 多次put幂等
U
delete
删除 /delete/id
D
1.4 Http响应Code
code
描述
以1开头(1xx)
临时响应,表示请求已被处理,需要继续处理。服务器处于收到请求的过程中
以2开头(2xx)
请求被服务器成功接收
以3开头(3xx)
重定向
以4开头(4xx)
客户端请求错误(由于客户端这边的问题,服务器无法处理。如客户端这边的数据格式不对、给的资源路径 不对、权限不足等)
以5开头(5xx)
服务端内部错误(服务器处理出错,服务端内部业务异常或系统异常)
1.5 URL长度限制
URL长度的限制由浏览器规定的,而不是HTTP协议。以下是一些浏览器对http中url长度的限制大小。
编号
浏览器
长度(字节)
1
IE
2048
2
360
2118
3
Firfox
65536
4
Safari
80000
5
Opera
190000
6
Chrome
8182
当然大家会说我是搞开发的,我不用浏览器那么长度限制吗?比如用apache-httpclient,我试httpclient也同样是有长度限制的,过长就返回400错误了。
1.6 Http与Tcp之间的关系
HTTP协议是可靠的数据传输协议。可靠性是依赖于传输层的TCP协议来实现的。也就是说,HTTP协议的底层是TCP协议,通过TCP协议的可靠性从而保证HTTP协议也是可靠的。
1.7 Get与Post的区别
get
post
url可见性
参数可见
参数一般放在request body中一般不可见
数据传输
拼接url的方式
request body中
缓存
可缓存,get是幂等的
不缓存,也就是post不是幂等
传输数据大小
有限且与浏览器相关,一般在2~4k左右
可无限
安全性
一般来说get没post安全
对于网络抓包来说http的数据都不安全
1.8 Http与Https区别
**端口方面:**HTTP的URL由“http://”起始且默认使用端口80,而HTTPS的URL由“https://”起始且默认使用端口443。
**安全性:**HTTP协议运行在TCP之上,所有传输的内容都是明文。HTTPS是运行在SSL/TLS之上的HTTP协议,SSL/TLS 运行在TCP之上。所有传输的内容都经过加密,加密采用数字信封技术,https需要数字证书的支持。
**资源消耗:**HTTPS 比HTTP耗费更多服务器资源及性能。