初步了解HTTP协议
1.HTTP简介
- 全称:Hyper Text Transfer Protocol,中文名:超文本传输协议。
- 功能:HTTP是客户端浏览器或其他程序与web服务器之间的应用层通信协议。
- 特点:a.支持客户端/服务器模式。
b.简单快速:客户端向服务器请求服务时,只需传送请求方法和路径。每种方法规定了客户端与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
c.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
d.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户端的请求,并收到客户端的应答后,即断开连接。采用这种方式可以节省传输时间。
e.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
2.HTTP请求
HTTP最常见的两种请求方式:GET和POST。GET请求获取Request-URI所标识的资源,POST在Request-URI所标识的资源后附加新的数据。
两者之间的区别:GET请求用于URL形式,POST请求用于文件上传、表单提交等形式;
3.HTTP-Session
前面提到HTTP具有无状态的特点,Session就是服务器端使用的一种记录客户端状态的机制,Session以文件形式保存在服务器端,一般保存在服务器的内存里,但是过多的Session存储在服务器内存中,会对服务器造成压力。那么服务器是怎么识别这些客户端的呢?当浏览器访问一个程序时,服务器会分配一个Session ID给浏览器,并且是唯一标识。新打开的浏览器窗口会生成新的Session ID,但是子窗口除外,子窗口会共用父窗口的Session ID。关闭浏览器Session ID就会失效。例如,在一个链接上点击右键,选择“在新窗口中打开链接”,新窗口就是用的原来的Session ID。
4.HTTP-Cookie
除了Session以外,Web应用程序还经使常用Cookie来记录客户端状态,与Session不同的是,Cookie是保存在客户端本地的。客户端请求服务器,如果服务器需要记录该用户状态,就向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。例如,登录时,点击记住密码或下次自动登录,下次访问网站时就不需要再次登录,直接访问即可。服务器把登录信息如账号、密码等保存在Cookie中,并控制Cookie的有效期,下次访问时服务器再验证Cookie中的登录信息,通过就可以登录了。
记录一个关于缓存的bug:在登录状态清除cookie和缓存,在之前打开的页面点击一个功能模块下的小模块,页面报错而不是跳转到登录界面。
初步了解HTTP协议的更多相关文章
- Cadence Allegro元件封装制作流程
(本文为转载,原文出处不详) 引言 一个元件封装的制作过程如下图所示.简单来说,首先用户需要制作自己的焊盘库Pads,包括普通焊盘形状Shape Symbol和花焊盘形状Flash Symbol:然后 ...
- 基于DirectShow的MPEG-4视频传输系统的研究与实现
1 引言 近年来,随着国民经济的发展,社会各个部门对于视频监视系统的需求越来越多.但目前的很多监视系统都跟具体的硬件相关,必须要具体的采集卡的支持才能实现.所以有必要开发一种具有通用性的视频监 ...
- 可靠UDP设计
最近加入了一个用帧同步的项目,帧同步方案对网络有着极大的影响,于是采用了RUDP(可靠UDP),那么为什么要摒弃TCP,而费尽心思去采用UDP呢?要搞明白这个问题,首先要了解TCP和UDP的区别 , ...
- 宿主机Windows访问虚拟机Linux文件(一)
如果用户使用windows操作系统,但是在虚拟机下配置Linux内核操作操作系统,往往需要实现通过宿主机Windows操作系统访问Linux内核操作系统中资源.本次实验实现的是宿主机windows 1 ...
- QUIC
QUIC(Quick UDP Internet Connection)是谷歌制定的一种基于UDP的低时延的互联网传输层协议.在2016年11月国际互联网工程任务组(IETF)召开了第一次QUIC工作组 ...
- 11. Go 语言网络编程
Go 语言网络编程 Go语言在编写 web 应用方面非常得力.因为目前它还没有 GUI(Graphic User Interface 图形化用户界面)的框架,通过文本或者模板展现的 html 界面是目 ...
- Git使用总结 Asp.net生命周期与Http协议 托管代码与非托管代码的区别 通过IEnumerable接口遍历数据 依赖注入与控制反转 C#多线程——优先级 AutoFac容器初步 C#特性详解 C#特性详解 WPF 可触摸移动的ScrollViewer控件 .NET(C#)能开发出什么样的APP?盘点那些通过Smobiler开发的移动应用
一,原理 首先,我们要明白Git是什么,它是一个管理工具或软件,用来管理什么的呢?当然是在软件开发过程中管理软件或者文件的不同版本的工具,一些作家也可以用这个管理自己创作的文本文件,由Linus开发的 ...
- FFmpeg 协议初步学习
typedef struct URLContext { const AVClass *av_class; /**< information for av_log(). Set by url_op ...
- HTTP协议初步解析
一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,定义了Web客户端向Web服务器请求Web页面的 ...
随机推荐
- 将js进行到底:node学习10
node.js数据库篇--MySQL NoSQL大行其道的如今,MySQL这样的关系型数据库依然有着不可撼动的位置,对于中型,大型面向对象的项目,关系型数据库依然是首选,真正的项目,应当是将数据库的任 ...
- TICA 2019 自动的自动化测试——智能化一站式的API测试服务
阿里QA导读:新奥集团中台的陈磊为我们打开了AI测试驱动的视野,同时也深入浅出地介绍了如何打造智能化API测试框架.通过陈磊老师的分享,我们看到了AI-DT的无限可能性.以后,AI能不能代替大部分手动 ...
- O2O疯狂烧钱路:止血还是放血好
在国内,无论是互联网巨头还是创业者,很多都将O2O领域当做下一个金矿.而对于很多O2O项目来说,市场规模.用户基数.发展潜力等传统指数依然被当做硬性指标.而为了抢夺用户,很多O2O项目都只能疯狂烧钱, ...
- 360若真入股HTC 到底是谁来拯救谁
到底是谁来拯救谁" title="360若真入股HTC 到底是谁来拯救谁"> 我总是持有一种观点,那就是拯救是相互的.就像老师拯救"堕落"学生, ...
- python自动化测试技术-Allure
文末有源码 大部分人可能做的是爬虫和web,数据分析方面的工作,今天分享个在自动化测试领域python能做什么样的事情,比如下方,是用python+pytest+allure生成的精美自动化测试报告, ...
- PHP 全局使用 Laravel 辅助函数 dd
dump() 方法 全局 composer.json 12345 "require": { "squizlabs/php_codesniffer": " ...
- ado.net DataSet
一.概念 DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataS ...
- iOS 使用系统的UITabBarController 修改展示的图片大小
1. 设置TabBarItem图片的大小 1 - (void)configurationAppTabBarAndNavigationBar { // 选中的item普通状态图片的大小 UIImage ...
- 正式学习MVC 05
1.剃须刀模板razor的使用 1)混编 循环语法 @model List<MVCStudy.Models.Student> @{ ViewBag.Title = "List&q ...
- 基于Vue的机器学习平台前端
项目演示地址:http://vidanao.com/ml>注意1:前端兼容性不太好,360浏览器比较兼容; >注意2:此vidanao.com也是我的个人博文主页,但目前还没部署 源码地址 ...