http协议
2017-08-24 13:02 谭丽# 阅读(186) 评论(0) 编辑 收藏 举报http中文名称:超文本传输协议(HTTP,HyperText Transfer Protocol,超文本转移协议)是互联网上应用最为广泛的一种网络协议,属于应用层(直接和用户打交道)的协议(共7层协议),管理和控制消息使用TCP(0-65535个端口)/IP协议(传输控制协议和地址协议,三次握手和四次挥手)。
http协议的扩展->HTTPS(加s的代表加密)
物理
数据链路
网络
传输
会话
表示应用
与端口有关的两个协议:
TCP协议(传输控制协议,0-65535个端口):传输文字图片,传递可靠消息,保证可靠
UTP协议(用户数据报协议,0-65535个端口):
什么是HTTP协议:HTTP协议就是互联网通信标准
目前使用版本:http1.1
最新版本:http2.0
特点:
1.支持客户/服务器模式
2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径
3.灵活:HTTP允许传输任意类型的数据对象
4.无连接:无连接的含义是限制每次连接只处理一个请求
5.无状态:HTTP协议是断开式的协议,该协议没有记忆能力,没有连接状态。
所谓断开式:就是指通过HTTP协议发送的请求,无论发送多少次,每一次都会被当成全新的请求,服务器并不知道这一次请求和上一次请求有什么关系
请求方式8种:
1、OPTIONS
返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
2、HEAD
向服务器索与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。
3、GET
向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:web_link和web_url
4、POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form
5、PUT
向指定资源位置上传其最新内容
6、DELETE
请求服务器删除Request-URL所标识的资源
7、TRACE
回显服务器收到的请求,主要用于测试或诊断
8、CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
注意:
1)方法名称是区分大小写的,当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Mothod Not Allowed);当服务器不认识或者不支持对应的请求方法时,应返回状态码501(Not Implemented)。
2)HTTP服务器至少应该实现GET和HEAD/POST方法,其他方法都是可选的,此外除上述方法,特定的HTTP服务器支持扩展自定义的方法。
表单处理的要点
get和post的区别(标准http协议)
1)Get,
它用于获取信息,注意,他只是获取、查询数据,也就是说它不会修改服务器上的数据,从这点来讲,它是数据安全的,而稍后会提到的Post它是可以修改数据的,所以这也是两者差别之一了。
2)
Post,它是可以向服务器发送修改请求,从而修改服务器的,比方说,我们要在论坛上回贴、在博客上评论,这就要用到Post了,当然它也是可以仅仅获取数据的。
(1)GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接;例 如:login.action?name=hyddd&password=idontknow&verify=%E4%BD%A0 %E5%A5%BD。如果数据是英文字母/数字,原样发送,如果是空格,转换为+,如果是中文/其他字符,则直接把字符串用BASE64加密,得出如: %E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII。
POST提交:把提交的数据放置在是HTTP包的包体中。上文示例中红色字体标明的就是实际的传输数据
因此,GET提交的数据会在地址栏中显示出来,而POST提交,地址栏不会改变
(2)传输数据的大小:首先声明:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。
而在实际开发中存在的限制主要有:
GET:特定浏览器和服务器对URL长度有限制,例如 IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系 统的支持。
因此对于GET提交时,传输数据就会受到URL长度的 限制。
POST:由于不是通过URL传值,理论上数据不受 限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。
(3)安全性:
POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面GET提到的“安全”不是同个概念。上面 “安全”的含义仅仅是不作数据修 改,而这 里安全的含义是真正的Security的含义,比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存, (2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击
文件上传(file) :
- 客户端上传设置 file控件
- 在服务器端通过PHP处理上传的文件
① 关于PHP配置文件中的指令
② $_FILES多维数组($_GET,$_POST,$_GLOBALS,$_FILE)
③ PHP中为文件上传提供的两个函数
限制文件的格式/大小怎样处理
file_uploads:确定服务器上的PHP脚本是否可以接受HTTP文件上传
upload_max_filesize:限制PHP处理上传文件大小的最大值,这个值不能超过post_max_size
post_max_size:限制通过post方法可以接收信息的最大值
upload_tmp_dir:上传文件的临时路径
max_file_uploads:最大允许上传的文件数
$_GET[]
$_POST[]
$_GLOBALS[]
$_COOKIE[]
$_SESSION[]
$_REQUIRE[]
$_FILES[]
$_SERVER[]
$_ENV[]