HTTP 随笔
2016-06-22 22:46
337 查看
浏览器发送HTTP请求主要分为三部分请求行,Response Headers(响应头信息)和Request Headers(请求头信息)。
请求行有分为三部分:请求方法,请求路径和请求协议
请求方法有:POST,GET,PUT,DELETE,HEAD,TRACE,OPTIONS
例子:使用Telnet发送GET请求
按ENTER后进入Telnet,按Ctrl+],再按ENTER打开回显功能。
输入请求行
GET /test.php HTTP/1.1
Host: localhost
然后按两次ENTER得到响应信息和响应内容
例子:使用Telnet发送POST请求
发送POST请求必须指明Content-Type和Content-length,输入完请求行后需空一行才能输入要提交的POST数据
例子:使用Telnet发送HEAD请求
HEAD请求和GET请求相似,但是HEAD请求只会返回响应头信息而不会返回响应内容
TRACE请求方法是用于判断HTTP请求经过了多少层代理和代理服务器的信息。
OPTIONS请求方法是返回服务器可用的请求方法
304状态码说明
浏览器在请求图片资源或者文件(JavaScript,CSS)资源的时候,服务器端会返回etag和Date信息,浏览器会将这些资源存放在本地。当浏览器再次请求图片资源或者文件(JavaScript,CSS)资源的时候,会将带上if-modified-since(Date内容)和if-none-match(etag内容)一起发送到服务器,服务器会比对这两个信息,如果与服务器保留的信息相同,则返回304状态码告诉浏览器从本地获取资源而不会从服务器响应返回资源。
301,302,307状态码说明
301(永久重定向)和302(临时重定向)是负责重定向,但是在使用301和302进行重定向的时候会丢失POST提交的数据,这时候可以使用307状态码进行重定向就能保留POST数据。
例子:图片防盗链
请求资源文件的时候在请求头信息中会带refer信息,服务器根据这个refer信息来判断请求发起源是否是允许的域名,如果是非允许的域名则重定向到其他页面,从而进行防盗链。(当然有时候发起请求时候可能不会带Renferer内容,这时候可以通过判断host信息来进行防盗链)
在项目目录下新建.htaccess并写入(使用对web容器是Apache且需要开启rewrite模块)
例子:HTTP协议与内容压缩
在http-conf开启deflate模块(Apache服务器)
在http-conf写入
压缩前
压缩后
备注:一般情况下是不会对图片文件,视频影音文件进行压缩,只会对文本类的文件进行压缩(如:文本文件,HTML文件,JavaScript文件,样式文件等),因为文本类文件压缩效果好,而图片文件,视频影音文件的压缩效果很差,同时服务器进行压缩本身就很消耗CPU资源。
服务器是如何知道浏览器支持哪种类型的压缩?
浏览器在发送请求的时候会在Request Headers加入
告诉服务器。服务器会根据这个判断是否要进行压缩。
例子:comet反向AJAX
反向AJAX的原理是当浏览器获取完Content-length长度的字节后会断开HTTP连接,而反向AJAX就是不给Content-length指定长度使得HTTP请求一直连接着。
请求行有分为三部分:请求方法,请求路径和请求协议
请求方法有:POST,GET,PUT,DELETE,HEAD,TRACE,OPTIONS
例子:使用Telnet发送GET请求
按ENTER后进入Telnet,按Ctrl+],再按ENTER打开回显功能。
输入请求行
GET /test.php HTTP/1.1
Host: localhost
然后按两次ENTER得到响应信息和响应内容
例子:使用Telnet发送POST请求
发送POST请求必须指明Content-Type和Content-length,输入完请求行后需空一行才能输入要提交的POST数据
例子:使用Telnet发送HEAD请求
HEAD请求和GET请求相似,但是HEAD请求只会返回响应头信息而不会返回响应内容
TRACE请求方法是用于判断HTTP请求经过了多少层代理和代理服务器的信息。
OPTIONS请求方法是返回服务器可用的请求方法
304状态码说明
浏览器在请求图片资源或者文件(JavaScript,CSS)资源的时候,服务器端会返回etag和Date信息,浏览器会将这些资源存放在本地。当浏览器再次请求图片资源或者文件(JavaScript,CSS)资源的时候,会将带上if-modified-since(Date内容)和if-none-match(etag内容)一起发送到服务器,服务器会比对这两个信息,如果与服务器保留的信息相同,则返回304状态码告诉浏览器从本地获取资源而不会从服务器响应返回资源。
301,302,307状态码说明
301(永久重定向)和302(临时重定向)是负责重定向,但是在使用301和302进行重定向的时候会丢失POST提交的数据,这时候可以使用307状态码进行重定向就能保留POST数据。
例子:图片防盗链
请求资源文件的时候在请求头信息中会带refer信息,服务器根据这个refer信息来判断请求发起源是否是允许的域名,如果是非允许的域名则重定向到其他页面,从而进行防盗链。(当然有时候发起请求时候可能不会带Renferer内容,这时候可以通过判断host信息来进行防盗链)
在项目目录下新建.htaccess并写入(使用对web容器是Apache且需要开启rewrite模块)
例子:HTTP协议与内容压缩
在http-conf开启deflate模块(Apache服务器)
在http-conf写入
压缩前
压缩后
备注:一般情况下是不会对图片文件,视频影音文件进行压缩,只会对文本类的文件进行压缩(如:文本文件,HTML文件,JavaScript文件,样式文件等),因为文本类文件压缩效果好,而图片文件,视频影音文件的压缩效果很差,同时服务器进行压缩本身就很消耗CPU资源。
服务器是如何知道浏览器支持哪种类型的压缩?
浏览器在发送请求的时候会在Request Headers加入
告诉服务器。服务器会根据这个判断是否要进行压缩。
例子:comet反向AJAX
反向AJAX的原理是当浏览器获取完Content-length长度的字节后会断开HTTP连接,而反向AJAX就是不给Content-length指定长度使得HTTP请求一直连接着。
相关文章推荐
- 分析http应用层
- TCP/IP 详解 卷1 第1章 读书笔记
- TI CC3200实现TCP/IP通信之一
- Qt+VLC 实现的网络串流媒体播放
- GeoIP2 精准服务(网络API)
- HTTP基础知识普及
- 解决Weblogic 本机可以访问控制台,网络IP访问不了
- 实例讲解虚拟机3种网络模式(桥接、nat、Host-only)
- 通过ssh访问NAT网络模式下的虚拟机Linux
- NanoPi的网络配置
- pyhton3 标准库 cgi 通用网关接口
- TCP三次握手/四次挥手详解
- 山东理工大学 2506 完美网络
- 未能加载文件或程序集“System.Web.Http.WebHost, Version=4.0.0.0, ”或它的某一个依赖项。系统找不到指定的文件。
- 数据传输效率
- java httpServer端接受post请求数据并使用3DES+base64加密解密demo希望能够对您有帮助
- TCP和UDP Socket
- Android网络请求代码封装
- HttpClient请求
- 【洛谷2038 无线网络发射器选址】【模拟】