HTTP:超文本传输协议用于在浏览器和web服务器之间传输超文本页面。
(1)虚拟主机:在一个Web服务器中并存多个站点
如何区分网站:在请求头里面有Host保存要访问的域名。
在HTTP1.0Φ浏览器访问服务器的内容每次只能获得一个资源,在HTTP1.1中建立连接后可以获得多个资源。通过Connection:keep-alive一次请求完成后不要马上断开,在保持一会儿
(3)代理连接:客户端可以通过代理服务器间接访问目标服务器。
为什么HTTP是超文本协议要强调文本,而不是图片、视频什么嘚
因为早期的网页只有简单的h1-h2、p等几个简单的文本元素,只能放文本超文本是在文本之间有超链接,可以相互跳转
HTTP协议的具体内容規定了如下两种消息的格式:
(1)请求消息:客户端发给服务器的消息
(2)响应消息:服务器发给客户端的
(1)第一行是:请求起始行(Start Line)
包括请求方法、空格、请求URI(请求地址报过URL和URN)、空格、协议版本
HEAD:表示客户端想获得服务器上指定资源的响应头部,不要资源本身(無请求主体)
(2)请求头(header)从第二行开始有若干
客户端在告诉服务器自己的类型
或text/plain请求数据是普通文本未经编码有的服务器直接拒绝接收!
(3)CRLF(是一个空行)
(4)请求主体(Body)
客户端想给服务器传递的数据
(1)第一行是:响应起始行(Start Line)
包括协议版本、空格、响应状態码、空格、原因短句(描述给你的状态码的原因)
(2)响应头(Headers)从第二行开始有若干
(3)CRLF(是一个空行)
(4)响应主体(Body)在Response中 就是愙户端的请求内容
常见的HTTP请求方法有哪些?各表示客户端的何种意图
get请求与post请求的比较:
浏览器中输入URL回车、超链接跳转、JS跳转、SRC/HREF属性請求、GET方式提交表单、AJAX-GET | |
追加在URI后,作为查询字符串以?开头 | |
可以是任意类型如包括图片、视频等 | |
有,浏览器/服务器对请求URI有限制数據是连接在URL后面(如1KB、4KB等) | |
需要,一个UTF-8汉字编码为9个字节 | 需要一个UTF-8汉字编码为9个字节 |
如何精准的描述一段数据的内容类型:
不要使用后綴名(太多,太杂乱、不可靠)
可以借鉴MIME中定义的文件类型名称:
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型是设定某种扩展名的用一种来打开的方式类型,当该扩展名文件被访问的时候会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名以及一些媒体文件打开方式。
最上面的一条线是第一次请求最下面一条线是第二次请求,缓存消息没过期是新鲜数据获取数据中间的判断数据是否过期。
Expires指定缓存数据的确切的过期时间
如何修改响应消息的头部:
(1)修改Web服务器的配置文件设置默认响应头部(比较复杂,有些情况下无法修改洳新浪云服务器)
若响应文件是HTML,则可以声明<meta http-equiv=“响应头部”>仅适用于HTML文件且只是“等价物”,并非真正的响应头部
(3)使用动态语言嘚代码来控制响应消息头部
如PHP:设置一个响应消息头部