WWW是什么
WWW world wide web 万维网
Internet提供了很多服务,其中包括WWW网页服务,FTP文件传输服务,E-mail电子邮件,Telent远程登录,WWW是浏览器访问网页的服务,所以在网站的主页域名前需要加WWW,而随着网站服务类型的增加,不同的二级或三级域名对应不同的业务,而不同业务的处理任务会分配到多个服务器,,所以,不需要在使用WWW来标注网页,但是很多网站还是会做DNS解析WWW,是为了尊重用户习惯
HTTP的特点
- HTTP基于TCP/IP通信协议来传递数据的
- HTTP是基于客户端/服务端(C/S)架构模型
- 通过一个可靠的连接交换信息,是一个无状态的请求/响应协议
- 限制每次连接只处理一个请求,服务器处理完客户端的请求,并受到客户端的应答后,断开连接,采用这种方式可以节省传输时间
- 只要客户端和服务器知道如何处理数据的内容,任何类型的数据都可以通过HTTP发送,客户端以及服务器指定使用合适的MIME-type(Multipurpose Internet Mail Extensions type 多用途互联网邮件扩展类型)内容类型
HTTP报文
HTTP报文定义: 在客户端和服务器之间发送的数据块,这些数据块以一些文本的源信息开头,描述了报文的内容及含义,后面跟着可选的数据部分,这些报文在客户端、服务器和代理之间流动。因此HTTP报文的发送也叫报文流
每条HTTP报文包含一个客户端请求和一个服务端响应
报文的组成部分
1、对报文进行描述的起始行
2、包含属性的头部
3、包含数据的主体(body)
HTTP报文的8种请求方式
GET/POST
OPTIONS 返回服务器针对特定资源支持的HTTP请求方法
HEAD 返回与GET请求相一致的响应,响应体被返回
PUT 向指定资源位置上传最新内容(form表单不支持)
DELETE 请求服务器Request-URI所标识的资源
TRANCE 回显服务器收到的请求
CONNECT 连接改为管道方式的代理服务器
以下四种分别对应增删改
put:上传资源,form表单不支持、提交即存储的原则、需配置服务器支持
delete:删除资源form表单不支持提交即删除原则,也需要配置服务器
put delete 都没有验证机制、有安全漏洞
post:修改资源
get:获取资源
4种不同的请求方式是为了分清楚不同请求的目的,但并不代表了post就一定要修改数据,用get就不能修改资源
POST请求与GET请求的区别
GET主要用来获取数据
GET的数据在请求体中是查询字符串参数(Query String Parameters)
POST主要用于传输数据到后端进行增加删除更新数据提交表单
POST的数据在请求体中是表单数据Form Data
但是它们在
v
i
e
w
s
o
u
r
c
e
中仍然是
u
r
l
键值对形式
\color{red}但是它们在view source中仍然是url键值对形式
但是它们在viewsource中仍然是url键值对形式
1、POST更安全
因为不会作为url的一部分、不会被缓存、保存在服务器日志和浏览器记录中
2、POST发送的数据量更大(GET有URL长度限制)
3、POST能发送更多的数据类型
GET只能发送ASCII字符
4、POST请求比GET速度慢
原因:(1)post里面包含更多的请求头
(2)POST接收数据之前会先将请求头发送给服务器确认,然后发送数据
post的过程
第三次握手,浏览器确认并发送post请求
服务器返回状态码100后,继续响应
浏览器开始发送数据
服务器返回200
(3)GET会进行数据缓存,POST不会
(4)POST不能进行管道化传输
管道化传输: 持久化连接 connection:keep-alive连接不会关闭,持久连接把所有请求放到发送队列里,不等待响应,一个一个发送请求的同时接收相应的响应
幂等性: 一个HTTP请求中,不会对数据或状态做修改,并且每次请求都会返回同样的结果
必要性:GET请求必须遵循幂等性,从HTTP请求上来看GET只能获取数据
POST请求一般做增删改的操作,所以一般不遵循幂等性