文档章节

NOTE:Http

猪刚烈
 猪刚烈
发布于 2014/10/12 11:41
字数 1299
阅读 9
收藏 0
点赞 0
评论 0

2009-8-7
 
1.关于GET和POST:
 
GET:
 
POST:
 
关于GET和POST方法的选择(两者的异同):
 1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。
  2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
  3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
  4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post。
  5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
  6、Get是Form的默认方法。
因此,基于上述异同,在选择GET还是POST的时候需要灵活对待:
如:如果需要用户能够bookmark本页面,则应选择GET.
如果涉及安全问题,如用户提交密码,则应选择POST。
2.关于重定向:
重定向是指:当client向server发送一个请求,要求获取一个资源时,而server接收到这个请求后发现请求的这个资源实际存放在另一个位置,于是server在返回的response中重新写下那个请求资源的URI,然后client接受到这个response后重新请求请的URL。重定向有一个典型的特诊,即,当一个请求被重定向以后,最终浏览器上显示的URL往往不再是开始时沟请求的那个URL了。这就是重定向的由来。
 
3.关于COOKIE
HTTP是无状态的。这一点重所周知,如果需要记录访问状态,维护一个上下文的话,HTTP给出的解决方案是Cookie.需要特别强调的是:Cookie是由Server创建,并在response中传给Client的,这一点,过去自己的理解一直是错误的。还需要强调的,Cookie被服务器建立之后,在每次client与server之间的request和response中都会携带,从而使它能够成为一种能“保持住”的信息。
2009-8-10
1.关于HTTP Message的结构。
由HTTP协议传送的Request和Response都是HTTP Message,这些Message的格式都是约定好的。
HTTP Request的基本结构如下图:
即,一个HTTP Request由请求行,消息头,消息体三部分组成。
下面是一个具体的GET方法的Request消息:
我们可以看出,对于GET方法,请求参数都是附在URL后面的。消息体是空的。
而下面是一个具体的POST方法的Request消息:
可以看出,在POST方法中,请求参数都是放在消息体的。
下面是Response的消息结构:
NOTE:Response应该有请求的那个页面的HTML文档,这些信息就放在Response的Message Body里!
 
2009-9-5
一个页面的Render过程:
一个页面的内容是放在从服务端发回来的response中的,注意:这个response中只是一些html文本。当浏览器接收到这些html片段就开始展示它们。如果这个页面中有像<script><style><img>这样需要引入其他文件时,这个时候浏览器会再次发送一个request用于取得这个文件。因此,一个负责的页面请求最终可能会变成很多个子请求,这些子请求就是用来获得页面引用的资源。这一点从httpwatch的监控记录上表现了非常清楚!下面是访问google时的监控记录:
 
从这个监控纪录上可以看出:虽然只是请求一个页面,但是因为这个页面引用了一个js文件和多个图片,因此browser又单独发出http request用于获取这些个资源,总共发出6个request后,browser把这些资源,包括请求页面的html代码整合在一起完成页面的展示过程。
那么,如果请求的是一个图片,数据是怎么传输的呢?其实很简单,和传送文本是一样的,只不过response的body里不是字符,而是图片的二进制数据。而图片数据到达browser后,browser也是根据Content-Type header 把二进制数据作为图片来展示的!整个过程是很完美的,http就是通过这程方式来获取并展示数据的。
要 大幅度地
 
 
 

本文转载自:http://blog.csdn.net/bluishglc/article/details/4421849

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
自动化端对端测试框架-Protractor Reference 3

Upgrading from Jasmine 1.3 to 2.x First, please read Jasmine's official upgrade documentation. In your conf file Specify that you want to use jasmine2.x: exports.config = { // S......

dhb_oschina ⋅ 2016/04/24 ⋅ 0

schema基本格式及xml引用xsd

来自w3c的例子: note.xsd <?xml version="1.0"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"targetNamespace="http://www.w3school.com.cn"xmlns="http://www.w3school.com.c......

小代码2016 ⋅ 2015/10/10 ⋅ 0

activity切换动画

Android 编程下设置 Activity 切换动画 探索安卓中有意义的动画! 安卓统一添加activity切换动画 Android 编程下设置 Activity 切换动画 实现Activity间的共享控件转场动画 Android的Activit...

addcn ⋅ 2015/12/31 ⋅ 0

Cpp 使用链式栈实现 表达式计算

下载地址 http://note.youdao.com/yws/public/resource/0e69c6de95b576ea2a028b5fd970c2ce/E123404216F4435FAD4B3A8D76D508DD http://note.youdao.com/share/?id=0e69c6de95b576ea2a028b5fd9......

SuShine ⋅ 2016/06/01 ⋅ 0

Jmeter压测快速体验

前言 最近在看neo4j相关的官网文档以及一些调优参数,同时也学了下Jmeter,为了测试下neo4j服务的性能,虽然不是专业搞测试的,但是我觉得每个优秀的开发者都应该学会主动压测自己服务和代码...

九劫散仙 ⋅ 2016/12/06 ⋅ 0

Apache Ignite(V1.5.0)中文开发手册

Apache Ignite(V1.5.0)中文开发手册 基本概念 集群化 数据网格 交互式SQL 流计算和CEP 分布式数据结构 Memcached 计算网格 服务网格 消息和事件 二级缓存 HTTP 内存文件系统 Hadoop加速器 ...

李玉珏 ⋅ 2016/01/13 ⋅ 9

Cakephp中的单元测试(Unit testing)和站点测试(Web testing)

Cakephp包含网站单元测试和站点测试的内容,简单介绍一下,这部分的使用,可以参考的文档包括SimpleTest参考:http://simpletest.org/SimpleTest API参考:http://simpletest.org/api/Cakephp手册...

thinkly ⋅ 2009/05/26 ⋅ 0

IDEA Maven 三层架构 1、基本的Archetype 搭建

JDK:1.8 Maven:3.3.9 三层架构:基于 SpringMVC 的 UI 层、业务逻辑层以及数据访问层 从对 Maven 的了解可以看出,三层架构的创建在于对文件夹的合理安排,他们通常是主子结构,其次还要运...

素时踏花 ⋅ 2016/10/01 ⋅ 0

Apache Ignite(V1.4.0)中文开发手册

Apache Ignite(V1.4.0)中文开发手册 基本概念 集群化 数据网格 交互式SQL 流计算和CEP 分布式数据结构 Memcached 计算网格 服务网格 分布式消息 分布式事件 HTTP 内存文件系统 Hadoop加速器...

李玉珏 ⋅ 2015/12/25 ⋅ 4

最全LinuxC语言系统开发资源视频资源

1小时快速攻破链表数据结构----(视频可下载)http://www.wyzc.com/forum/56796.html 深入理解auto register static关键字 http://www.wyzc.com/forum/56132.html 如何使用日期时间函数 http...

马洪伟 ⋅ 2014/12/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

在java中读取文件(也支持读取jar中的文件)

getClass().getResourceAsStream("文件名.格式"); 这个方法是用于获取当前类所在目录下的文件;需要将文件放到和当前类同一个包下面 比如我有个类在 com.test这个包下, 要读取一个test.jpg的图...

太黑_thj ⋅ 48分钟前 ⋅ 0

CentOS 7 源码编译安装 MySQL 5.7记录

没事瞎折腾,本来可以yum安装,却偏偏去要编译源码。 1. 安装依赖包 1). 安装cmake等依赖 # yum install cmake ncurses ncurses-devel bison bison-devel 2). 安装boost 1.59.0 # wget htt...

admin_qing ⋅ 50分钟前 ⋅ 0

tcp/ip详解-链路层

简介 设计链路层的目的: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答 为RARP模块发送RARP请求和接收RARP应答 TCP/IP支持多种链路层协议,如以太网、令牌环往、FDDI、RS-...

loda0128 ⋅ 今天 ⋅ 0

spring.net aop代码例子

https://www.cnblogs.com/haogj/archive/2011/10/12/2207916.html

whoisliang ⋅ 今天 ⋅ 0

发送短信如何限制1小时内最多发送11条短信

发送短信如何限制1小时内最多发送11条短信 场景: 发送短信属于付费业务,有时为了防止短信攻击,需要限制发送短信的频率,例如在1个小时之内最多发送11条短信. 如何实现呢? 思路有两个 截至到当...

黄威 ⋅ 昨天 ⋅ 0

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部