HTTP协议
无状态、非持续连接/持续连接
无状态协议:“每次的请求都是独立的,它的执行情况和结果与前面的请求和之后的请求是无直接关系的,它不会受前面的请求应答情况直接影响,也不会直接影响后面的请求应答情况”
非持续连接(每个请求、响应是由一个单独的TCP连接发送)与持续连接 (所有请求、响应由相同的TCP连接发送)
HTTP1.1比HTTP1.0的改进之处
- 增加了请求和响应头部
- 采取持续连接(一个TCP连接可以传送多个HTTP请求和响应)
- 采取流水线传送,即多个响应和请求传送可以重叠。
HTTP2.0
http请求报文/http响应报文
HTTP报文格式
http请求获取图片
服务器收到HTTP请求后把图片的E-tag与发送的比较,发现没有改变,就会发送HTTP响应 304 not modified。然后浏览器直接从缓存中取图像而不是从web服务器获取。if-modified-since的最小单位是秒,而Etags的时间粒度更小。
disk cache memory cache
disk cache memory cache 来自知乎
get与post的区别
- get请求方式的请求参数加在URL之后,有长度限制,大小一般超过1k。
- post请求方式的请求参数加在请求内容里,大小没有限制。
- get请求方法要求。
- post请求方法要求被请求服务器接收附在请求后的内容,通常用于提交表单。
- 来自: http://www.w3school.com.cn/tags/html_ref_httpmethods.asp
- GET后退按钮/刷新无害,POST数据会被重新提交(浏览器应该告知用户数据会被重新提交)。
- GET书签可收藏,POST为书签不可收藏。
- GET能被缓存,POST不能缓存 。
- GET编码类型application/x-www-form-url,POST编码类型encodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
- GET历史参数保留在浏览器历史中。POST参数不会保存在浏览器历史中
- GET对数据长度有限制,当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。POST无限制。
- GET只允许 ASCII 字符。POST没有限制。也允许二进制数据。
- 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET !POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。
- GET的数据在 URL 中对所有人都是可见的。POST的数据不会显示在 URL 中。
HTTP状态码
1xx:表示可续发请求
2xx:表示成功
202 成功
204 成功,不返回实体主体
206成功,执行一个范围请求
3xx:表示重定向
301 永久的,请求的网页永久移动到新的位置
302 临时重定向,但是禁止post变成get
303 另外一个url
304 判断是否要更新缓存,请求头部携带IF-MODIFIED-SINCE
307 临时重定向
4xx:表示客户端错误
400 客户端语法错误
401 未经授权
403 服务器拒绝服务
404 请求资源不存在
5xx:服务器端错误
500 不可预期的错误
503 此时不能提供服务,稍后恢复正常
浏览器缓存(HTTP请求报文和HTTP响应报文头部)
- HTTP协议有哪些请求方法,概述浏览器与HTTP头相关的缓存策略
HTTPS
HTTPS特点
- HTTPS协议需要到CA申请证书
- HTTP协议信息明文传送,HTTPS协议是具有安全性的SSL加密传输协议
- HTTP与HTTPS连接方式不同,端口也不同,HTTPS端口是443
- HTTP的连接很简单,是无状态的,HTTPS的连接是信息加密、身份认证的安全传输协议
密码使用post表单提交仍然是不安全的,有什么措施来保护
MD5摘要