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 ...
随机推荐
- (转)Elasticsearch索引mapping的写入、查看与修改
mapping的写入与查看 首先创建一个索引: curl -XPOST "http://127.0.0.1:9200/productindex" {"acknowledg ...
- session超时时间设置
在Tomcat的web.xml文件中修改如下标签 <session-config> <session-timeout>10</session-timeout> &l ...
- PAT 1018 Public Bike Management[难]
链接:https://www.nowcoder.com/questionTerminal/4b20ed271e864f06ab77a984e71c090f来源:牛客网PAT 1018 Public ...
- PAT 1016 Phone Bills[转载]
1016 Phone Bills (25)(25 分)提问 A long-distance telephone company charges its customers by the followi ...
- win10 java环境变量的正确配置
变量名:[JAVA_HOME]变量值:[D:\Program Files\Java\jdk1.8.0_92][jdk安装路径]变量名:[Path]变量值:[;%JAVA_HOME%\bin;%JAVA ...
- lambda函数和map函数
lambda函数,简化了函数定义的书写形式,使代码更为简洁,但是使用自定义函数的定义方式更为直观,易理解 g = lambda x:x+1 #上面的lambda表达式相当于下面的自定义函数 def g ...
- JavaScript DOM2
1.Window.history:window.open打开网页的方式必须是_self window.history.back()后退 Window.history.forward()前进 <b ...
- tablix“Tablix1”有一个具有内部成员的详细信息成员
做报表的时候出现了这个错误: 错误 1 tablix“Tablix1”有一个具有内部成员的详细信息成员.详细信息成员只能包含静态内部成员. 解决方案: 原因:在一个报表里面插入两个表格的时候:会出现 ...
- python 展开嵌套的序列
将一个多层嵌套的序列展开成一个单层列表 可以写一个包含yield from 语句的递归生成器来轻松解决这个问题. from collections import Iterable def flatte ...
- linux常用命令:Linux 文件类型与扩展名
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念.我们通过一般应用程序而创建的比如file.txt.file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文 ...