Http知识小总结
1.报文格式
1.1 Http 请求报文
Http请求报文包括请求行,请求头部和请求数据
(1) 请求行包括请求方法,url,http版本号
(2) 请求头部可包含多行,每行由 "字段名 : 值" 格式组成,常见的有
User-Agent : Mozilla/4.0
Host : xx.xx.xx.xx
Accept-Encoding : gzip deflate
Accept-language : English
Cookie : ...
... ...
(3) 请求数据通常没有,可以包含POST表单内容等等
1.2 Http应答报文
Http应答报文包括状态行,相应头部和请求数据
(1) 状态行包括Http版本,状态码和状态值
例如:Http1.1 200 OK
或:Http1.1 404 FileNotFound
(2) 相应头部也可包含多行,格式与Http请求报文类似,常见的有
Content-Encoding : gzip
Connection : keep-alive
Set-Cookie : ...
(3) 请求数据一般为Http的文本等
2. 常见请求类型
GET, POST, HEAD, PUT, DELETE , CONNECT , TRACE , OPTIONS
Http1.0 :
- GET : 向服务器请求获取资源,若指定获取资源的相关参数,包含在请求行之内。
- POST : 向服务器提交资源并请求进行处理,常用于提交表单或上传文件内,提交内容具体信息位于请求内容部分。
- HEAD : 与GET类似,不过只返回报文的头部,常用与测试。
Http1.1:
- PUT : 客户端向服务器端传送指定数据代替指定的文档内容。
- DELETE : 请求服务器删除指定内容。
- CONNECT : 常用于设置服务器代理,也即通过代理服务器进行访问。
- TRACE : 回显服务器的请求,通常用于测试。
- OPTIONS : 多用于客户端查看服务器性能。
3. 常见的状态码
- 1xx : 表示接收到请求,正在处理
- 2xx : 表示是对HTTP请求的成功返回
- 3xx : 服务器重定向
- 4xx : 表示客户端错误,如请求格式不正确,请求的界面不存在等等
- 5xx : 表示服务器内部错误
4. Cookie 和 Session的区别
Cookie和Session主要是为了解决HTTP无状态性的问题。
4.1 两者的不同
不同点在于Cookie保存在客户端的浏览器,实际上是一小段文本信息,多数由建立连接请求时由服务器颁发给客户端,用于下次连接时根据Cookie直接辨别Client的身份。
Session主要用于服务器端对会话的存储,当一个客户端连接时,HTTP服务器会给其分配一个SessionID,并将该SessionID的对应的会话内容存储在内存,客户端可以使用Cookies或使用其他请求参数使用该SessionID与服务器端进行关联。
4.2 优缺点比较:
Cookie可能存在安全性的问题,由于Cookie在客户端以文本形式存储,可能会被非法获取或篡改,一个可行的解决方案是可以将Cookie进行加密。
Session由于对于每个连接需要开辟空间对会话信息进行存储,可能会加重服务器的负载,影响性能。
下面的博文提供了一个更加详细的解释:
5. Reference:
https://blog.csdn.net/zx_emily/article/details/83024065
https://www.cnblogs.com/l199616j/p/11195667.html
https://segmentfault.com/a/1190000016806111