HTTP 随笔
浏览器发送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请求一直连接着。

HTTP 随笔的更多相关文章
- AI人工智能系列随笔
初探 AI人工智能系列随笔:syntaxnet 初探(1)
- 【置顶】CoreCLR系列随笔
CoreCLR配置系列 在Windows上编译和调试CoreCLR GC探索系列 C++随笔:.NET CoreCLR之GC探索(1) C++随笔:.NET CoreCLR之GC探索(2) C++随笔 ...
- C++随笔:.NET CoreCLR之GC探索(4)
今天继续来 带大家讲解CoreCLR之GC,首先我们继续看这个GCSample,这篇文章是上一篇文章的继续,如果有不清楚的,还请翻到我写的上一篇随笔.下面我们继续: // Initialize fre ...
- C++随笔:从Hello World 探秘CoreCLR的内部(1)
紧接着上次的问题,上次的问题其实很简单,就是HelloWorld.exe运行失败,而本文的目的,就是成功调试HelloWorld这个控制台应用程序. 通过我的寻找,其实是一个名为TryRun的文件出了 ...
- ASP.NET MVC 系列随笔汇总[未完待续……]
ASP.NET MVC 系列随笔汇总[未完待续……] 为了方便大家浏览所以整理一下,有的系列篇幅中不是很全面以后会慢慢的补全的. 学前篇之: ASP.NET MVC学前篇之扩展方法.链式编程 ASP. ...
- 使用Beautiful Soup编写一个爬虫 系列随笔汇总
这几篇博文只是为了记录学习Beautiful Soup的过程,不仅方便自己以后查看,也许能帮到同样在学习这个技术的朋友.通过学习Beautiful Soup基础知识 完成了一个简单的爬虫服务:从all ...
- 利用Python进行数据分析 基础系列随笔汇总
一共 15 篇随笔,主要是为了记录数据分析过程中的一些小 demo,分享给其他需要的网友,更为了方便以后自己查看,15 篇随笔,每篇内容基本都是以一句说明加一段代码的方式, 保持简单小巧,看起来也清晰 ...
- 《高性能javascript》 领悟随笔之-------DOM编程篇(二)
<高性能javascript> 领悟随笔之-------DOM编程篇二 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...
- 《高性能javascript》 领悟随笔之-------DOM编程篇
<高性能javascript> 领悟随笔之-------DOM编程篇一 序:在javaSctipt中,ECMASCRIPT规定了它的语法,BOM实现了页面与浏览器的交互,而DOM则承载着整 ...
- css随笔1
1.简单清除浏览器样式 *{ padding: 0px; margin: 0px; } 2.得到屏幕范围的div html,body{ width: 1 ...
随机推荐
- 万恶之源 - Python数据类型二
列表 列表的介绍 列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. 比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各 ...
- Comparable和Comparator的使用
1:对象实现Comparable, 那么对象就具有了比较功能 package comparableAndComparator; import java.util.Collections; import ...
- [LeetCode] 804. Unique Morse Code Words_Easy tag: Hash Table
International Morse Code defines a standard encoding where each letter is mapped to a series of dots ...
- Python Pandas找到缺失值的位置
python pandas判断缺失值一般采用 isnull(),然而生成的却是所有数据的true/false矩阵,对于庞大的数据dataframe,很难一眼看出来哪个数据缺失,一共有多少个缺失数据,缺 ...
- 《Kalchbrenner N, Grefenstette E, Blunsom P. A convolutional neural network for modelling sentences》
Kalchbrenner’s Paper Kal的这篇文章引用次数较高,他提出了一种名为DCNN(Dynamic Convolutional Neural Network)的网络模型,在上一篇(Kim ...
- python 用类方法和静态方法实现是追加写文件内容,和读指定行号的内容
用类方法和静态方法实现:一个是追加写文件一行内容,一个是读指定行号的内容 #coding=utf-8 class handle_file(object): def __init__(s ...
- PageRank算法与TextRank算法详解
PageRank算法: 该算法本质上属于有向带权图. 对于某个互联网网页A来说,该网页PageRank的计算基于以下两个基本假设: 数量假设:在Web图模型中,如果一个页面节点接收到的其他网页指向的入 ...
- spoj1825 Free tour II
题目链接 一道神奇的点分治 貌似有很多做法,我觉得BIT要好些一些(雾 要求经过黑点数<k就用BIT区间查询前缀 对于每个点用 BIT[0,k-经过黑点数]的最大值+路径长度 使用点分治做到O ...
- MySQL备份与恢复-innobackupex
:上一片myloder搞崩溃,为什么百度的博文都是抄袭一模一样的,哎烦! 这一片文章我们来介绍物理备份工具xtracebackup! 首先是安装可以percona官网下载安装,下载rpm包直接yum安 ...
- Python Web学习笔记之并发和并行的区别和实现
你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行.你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发.你吃饭吃到一半,电话来了,你一边打 ...