HTTP协议概述

什么是HTTP协议?
在这里插入图片描述
HTTP协议就是用于规定浏览器和服务器之间通信的方式、规则

主要规定了浏览器给服务器发送请求信息的格式

以及规定了服务器给浏览器发送响应信息的格式

** HTTP工作时遵循的基本原则(了解):

(1) 一次请求只对应一次响应

(2) 请求只能由浏览器发起, 服务器只能被动的等待请求, 根据请求作出回应/响应。

HTTP协议详解
HttpWatch: 针对IE浏览器提供的一个监听工具,用于监听浏览器和服务器通信的内容。
HTTP请求

在这里插入图片描述
1、请求行

GET /news/hello.html HTTP/1.1
GET: 表示请求的提交方式,在Http协议中一共规定了7种提交方式,但是常用的只有GET和POST。

/news/hello.html:请求资源路径,表示浏览器请求的是哪一个Web应用以及哪一个Web资源文件。

HTTP/1.1:请求所遵循的协议和版本。
2、若干请求(报)头

请求头都是Key-Value结构,例如:

Host: localhost – 通知服务器,浏览器请求的是哪一个主机。

Accept: text/html, application/xhtml+xml – 通知服务器,浏览器能接收的响应数据类型。

xxx: xxx

3、请求实体内容

如果请求方式为GET提交,请求实体中一定没有内容

如果请求方式为POST提交,并且请求中携带了数据,请求实体中才会有内容
HTTP响应
在这里插入图片描述
1、状态行

HTTP/1.1 200 OK

HTTP/1.1:响应所遵循的协议以及协议的版本

200:状态码,是一个三位的数字,表示服务器对请求处理的结果

200:表示请求处理成功

302:表示请求重定向(需要再进一步请求才可以获取到相应的资源)

304、307:表示通知浏览器使用缓存

404:表示浏览器请求的资源不存在(浏览器的问题,请求路径有误)

500:表示服务器在处理请求的过程中,程序抛出了异常。

OK:描述短语,表示请求处理的结果

200:OK

404:Not Found

500:Internal Server Error

…

2、若干响应头:

Content-Type: 表示服务器响应的数据类型,text/html, image/*…

Content-Length: 表示服务器响应的数据长度,例如:384 字节

Set-Cookie: 和cookie技术相关的一个头,后面会提到。

3、响应实体内容

响应实体就是浏览器所请求文件的内容。

例如:浏览器向服务器请求一个hello.html文件,服务器会找到hello.html文件,将文件的内容作为响应实体发送给浏览器

内容补充
问题1:请求方式什么时候是GET提交?什么时候是POST提交?
只有当使用表单(form),并且明确的在表单上通过method指定提交方式为POST时,才是POST提交,否则其他方式都是GET提交(AJAX除外)。

例如:

<form action="#" method="POST"></form>

判断以下请求方式是GET还是POST提交?

(1)<form action="#"></form>                      ——GET提交

(2)<form action="#" method="GET"></form>        ——GET提交

(3)<form action="#" method="POST"></form>       ——POST提交

 

(4)点击超链接访问服务器,例如:

<a href="http://www.baidu.com">百度一下</a>      ——GET提交

(5)直接在浏览器的地址栏中书写URL地址访问服务器     ——GET提交

问题2:GET提交和POST提交有什么区别?

主要体现在请求参数传输过程的不相同

GET提交:

(1)将数据通过问号拼接在地址栏URL地址的后面,相对非常不安全。

(2)将数据拼接在地址栏URL地址的后面,数据量是有限制的,通常不能超过1KB或者4KB

POST提交:

(1)POST提交是通过请求实体将数据提交给服务器,不会显示在地址栏上,因此相对更加安全!

(2)POST提交是通过请求实体提交数据,数据量理论上是没有限制的!

3、总结:

(1)如果只是单纯的做一个跳转,请求中没有任何数据,尽量使用GET提交

(2)如果在请求中有携带数据,但数据量并不带,并且数据没有隐私性,也尽量使用GET提交。

(3)如果在请求中有携带数据,数据量比较大,或者数据较为隐私,此时推荐使用POST提交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值