关于HTTP协议的基础知识

来源:互联网 发布:盘古网络是电话销售吗 编辑:程序博客网 时间:2024/05/21 07:55

第一次写博客。以下内容是从网上搜索汇总,加上自己的一点点理解。欢迎指正。

一:HTTP Methods:
常见的:
get–从服务器拉取数据
put–编辑保存,向服务器写入数据
post–新建保存,向服务器写入数据
delete–删除
二:HTTP Header:
随便截取的一个请求

可以发现header分为Response Headers和Request Headers
1)Request Headers各项的含义:
Accept–浏览器接受的media类型(text/html:html文件。图片中指任何类型)
Cache-control:网页的缓存控制。(max-age=n表示打开网页的n秒内再次访问不会访问到服务器。no-cache表示每次访问都会发送请求到服务器。private或must-revalidate表示只有第一次访问请求服务器,之后不请求。)
Referer:告诉服务器用户是从哪个页面链接过来的
Conection:keep-alive(TCP协议在服务器和客户端建立连接后不会关闭)
User-Agent: 告诉HTTP服务器, 客户端使用的操作系统和浏览器的名称和版本.
If-Modified-Since:后面的时间是response headers返回的Last Modified.表示服务器上该页面的最后修改时间。如果页面最新修改时间和该时间不一致,服务器会返回200,重新返回数据。如果一致就直接从缓存读取,并返回304
If-Non-Match:后面的值是response headers返回的ETag. 每次请求服务器资源时,服务器会检验资源的ETag是否改变。如果改变会返回200和新的ETag.如果没变就返回304,直接从缓存读取

2)Response headers各项含义:
Date:时间。表明原始服务器消息发出的时间。
Keep-alive:timeout=5,max=100.表示在5ms内有请求时,服务器和客户端的TCP不会断,且max减1,直到max=0或请求时间超过5ms就断开。
Expires:日期。表明在该日期之前缓存是有效的。但是服务端和客户端的时间设置可能不同,所以最好结合cache-control来。
Vary:Accept-Encoding,User-Agent等。表明需要哪些request header去充分决定一个response是否是fresh的,缓存服务器是否可以不用重新确认就使用一个reponse。浏览器根据请求的URI和vary response header的内容产生一个hash值。当缓存服务器接收到一个请求的时候,它会根据输入产生一个hash,之后检查缓存看是否已经有这个资源在硬盘上或者在内存中匹配这个hash值。缓存服务器以此来判断命中与否。
三:Status Code
常见:
200—请求ok
304—浏览器请求本地缓存
400—服务器不识别请求语法(一般传参或解析参数有问题)
401—服务器请求未授权(一般是权限不够)
403—服务器拒绝请求
404—服务器找不到请求的网页资源
500—服务器遇到错误(一般后台有问题)
504—网关超时(服务关了或代理服务出错)
四:HTTPS
HTTPS是在HTTP基础上加上了SSL,为请求加密,提高安全性,另外可以验证请求来源,确认网站真实性。
HTTP是明文传输。
五:CORS
CORS是一个W3C标准,全称是”跨域资源共享”(Cross-origin resource sharing),允许跨域请求。
JSONP只允许GET请求的跨域。
开启CORS的标志:“Access-Control-Allow-Origin:*