文档章节

http协议常用功能整理

落叶刀
 落叶刀
发布于 2016/01/02 10:24
字数 1158
阅读 77
收藏 1

本部分内容整理于互联网

HTTP定义:

协议是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,超文本传输协议(HTTP)是一种无状态通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器。

HTTP无状态机制:
http协议是无状态的,同一个客户端的这次请求和上次请求是没有对应关系,对http服务器来说,它并不知道这两个请求来自同一个客户端。 为了解决这个问题, Web程序引入了Cookie机制来维护状态.

http工作流程:一次HTTP操作称为一个事务,其工作过程可分为四步

 1. 当你在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request去获取百度的html.  服务器把Response发送回给浏览器.

2. 浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如图片,CSS文件,JS文件。

3. 浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。

4. 等所有的文件都下载成功后。 网页就被显示出来了。

 URL详解
 URL(Uniform Resource Locator) 地址用于描述一个网络上的资源,  基本格式如下

schema://host[:port#]/path/.../[?query-string][#anchor]
scheme               指定低层使用的协议(例如:http, https)

host                   HTTP服务器的IP地址或者域名

port#                 HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明.

path                   访问资源的路径

query-string       发送给http服务器的数据

anchor-             锚

Get和Post方法的区别
Http协议定义了很多与服务器交互的方法,最基本的有4种,分别是GET,POST,PUT,DELETE. 一个URL地址用于描述一个网络上的资源,而HTTP中的GET, POST, PUT, DELETE就对应着对这个资源的查,改,增,删4个操作。 我们最常见的就是GET和POST了。GET一般用于获取/查询资源信息,而POST一般用于更新资源信息.

1. GET提交的数据会放在URL之后,以?分割URL和传输数据,参数之间以&相连,如EditPosts.aspx?name=test1&id=123456.  POST方法是把提交的数据放在HTTP包的Body中.

2. GET提交的数据大小有限制(因为浏览器对URL的长度有限制),而POST方法提交的数据没有限制.

3. GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。

4. GET方式提交数据,会带来安全问题,比如一个登录页面,通过GET方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码.

Session机制
Session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。 当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为 session id,如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个 session检索出来使用(如果检索不到,可能会新建一个),如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个 session id将被在本次响应中返回给客户端保存。
Cookie的流程
服务器在响应消息中用Set-Cookie头将Cookie的内容回送给客户端,客户端在新的请求中将相同的内容携带在Cookie头中发送给服务器。从而实现会话的保持

 

© 著作权归作者所有

共有 人打赏支持
落叶刀
粉丝 38
博文 120
码字总数 103957
作品 2
浦东
运维
要做好性能测试,该掌握些什么?

今天有同行在blog上留言,问“想从功能测试转向性能测试,但不知道需要哪些了解哪些知识,及怎样进行一个系统的学习”。这类问题之前也被问到很多次了,所以这次干脆整理一下,发个主题供同行...

不最醉不龟归
2016/09/29
16
0
Dubbo 发布恢复维护后的第一个版本 2.5.4

Dubbo 发布了恢复维护后的第一个版本 2.5.4,主要是解决 issues 和依赖升级。 修复的 issue: 不能优雅停机的问题 MonitorFilter 监控统计功能阻塞 rpc 流程 动态配置:设置指定的 consumer...

fbf
2017/09/07
12.4K
75
Troubleshooting(三):网络

前言 在 Troubleshooting 过程中,检查完进程信息后,接下来就是排查网络情况的时候了,初略翻过《TCP/IP 详解卷一:协议》这本书,简直跟看《深入理解 Linux 内核》一毛一样,各种协议各种底...

诸葛孔明亮
2016/10/27
7
0
Linux的网络管理命令使用总结

摘要: Linux常见的网络访问与管理命令整理 1.curl 命令常用来访问网址 curl www.test.com 访问www.test.com 对于一些需要证书访问的 curl -E test.pem https://www.test.com (一般智能设备的...

前端_牛牛
2016/10/06
44
0
用Helper对类的行为进行修饰以便复用(附:外三篇)

本文是 代码“中间地带”的封装与复用 的后续。 咱不谈设计模式这种“高档”货,也不谈M××,只谈怎么消除Copy+Paste,消除拖窗体设置属性这类耗时、易错的动作。 前些天和我徒弟聊天,他沾...

最美的回忆
2017/09/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Docker Compose 原理

Docker 的优势非常明显,尤其是对于开发者来说,它提供了一种全新的软件发布机制。也就是说使用 docker 镜像作为软件产品的载体,使用 docker 容器提供独立的软件运行上下文环境,使用 dock...

Java干货分享
22分钟前
0
0
解决过滤器中设置cookie无效的问题

解决过滤器中设置cookie无效的问题 代码现场 filterChain.doFilter(sessionSyncRequestWrapper, response);Cookie emailCook = WebServletUtil.getSelectedCookie(request.getCookies(), ......

黄威
33分钟前
0
0
Hbase Schema 设计注意事项及最佳实践总结

一个列族的所有列在硬盘上存放在一起,使用这个特性可以把不同访问模式的列放在不同列族,以便隔离它们。这也是HBase被称为面向列族的存储(column-family-oriented store)的原因。 1、RowKe...

PeakFang-BOK
45分钟前
1
0
t-io给群组成员内置排序

1、实现比较器Comparator<ChannelContext> package xxx;import java.util.Comparator;import java.util.Objects;import java.util.Set;import java.util.TreeSet;import or......

talent-tan
49分钟前
2
0
px、em、rem 区别及作用

原文 起因: 一开始是为了解决页面放大时,字体不跟着放大的 bug。现在多用用于统一规范。 概念: 任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em...

lemos
58分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部