http协议1

本文详细介绍了HTTP协议的基础概念,包括其工作原理、特点以及如何通过Cookie技术维持会话状态。此外,还介绍了HTTP请求方法(如GET、POST等)、状态码(如200 OK、404 Not Found等),并探讨了URL与URI的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,HTTP是一个属于应用层的面向对象的协议,它是基于TCP协议的可靠传输,采用客户端/服务器端模式,由客户端发起请求,服务端进行响应。

2,HTTP是一种无状态协议,即不保存状态,它不对之前发生过的请求和响应的状态进行管理。每当有新的请求发送时,就会有对应的新响应产生,协议本身并不保留之前一切的请求或响应报文的信息。这是为了更快地处理大量事务,确保协议的可伸缩性而设计的。但同时也带来了一些不便,比如,用户登录到一家购物网站,即使他跳转到该网站的其他页面,也需要能继续保持登录状态,为了实现期望的保持状态功能,于是就引入了Cookie的技术。(Cookie的技术通过在请求和响应报文中写入的Cookie信息来控制客户端的状态.Cookie会根据从服务器端发送的响应报文内的一个叫做设置Cookie的首部字段信息,通知客户端保存的Cookie,当客户端下次再往服务器端发送请求时,客户端会自动在请求报文中加入的Cookie值后发送出去。服务器端发现客户端发送过来的饼干后,会去 和比对服务器上的记录,最后得到之前的状态信息。)

3,URL(Uniform Resource Locator,统一资源定位符)是我们使用Web 浏览器等访问Web页面时需要输入的网页地址,比如http://www.baidu.com.URI(Uniform Resource Identifier,统一资源标识符)是由某个协议方案表示的资源的定位标识符,协议方案是指访问资源所使用的协议类型名称.URI用字符串标识某一互联网资源,而URL表示资源的地址,可见URL是URI的子集。

HTTP中的方法:常用

1)GET:获取资源
GET方法用来请求访问已被URI识别的资源,指定的资源经服务器端解析后返回响应内容。
(2)POST:传输实体主体
POST方法用来传输实体的主体。虽然GET方法也可以传输,但一般不用GET方法进行传输。尽管POST的功能与GET很相似,但POST的主要目的并不是获取响应的主体内容。
(3)HEAD:获得报文首部
HEAD方法和GET方法一样
(4)PUT:传输文件
PUT方法用来传输文件,就像FTP协议的文件上传一样,要求在请求中(4)PUT:传输文件PUT方法用来传输文件,就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。但是由于HTTP / 1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全性问题,所以一般不使用该方法。
(5)DELETE:删除文件
DELETE方法用来删除文件.DELETE方法按请求URI删除指定的资源但是。PUT一样不带验证机制,所以一般也不是用该方法。
(6)OPTIONS:询问支持的方法
OPTIONS方法用来查询针对请求URI指定的资源支持的方法。
(7)TRACE:追踪路径
TRACE方法时让Web服务器端将之前的请求通信环回给客户端的方法。
(8)CONNECT:要求用隧道协议连接代理

CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(安全套接层,安全套接层)和TLS(传输安全层)协议把通信内容加密后经网络tunnel,tunnel传输。

HTTP状态码 根据开头数字来记区分

。状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果状态码的类别有以下5种:

 类别原因短语
1XX信息性状态码接收的请求正在处理
2XX成功状态码请求正常处理完毕
3XX重定向状态码需要进行附加操作以完成请求
4XX客户端错误状态码服务器无法处理请求
5XX服务端错误状态码服务器处理请求出错

常见的状态码如下:
2xx成功

200 OK:表示从客户端发来的请求在服务器端被正常处理。204无内容:该状态码代表服务器接收的请求已经成功处理,但在返回的响应报文中不包含实体的主体部分。 206部分内容:该状态码表示客户端进行了范围请求,而服务器成功执行了该部分的请求。

3xx重定向

301永久移动:永久性重定向。该状态码表示请求的资源已被分配了新的URI,以后应该使用现在资源所指的URI。302 Found:临时性重定向。该状态码表示请求的资源已经被分配了新的URI,希望用户本次能够使用新的URI访问。303参见其他:该状态码表示由于请求对应的资源存在着另一个URI,应该使用GET方法定向获取请求的资源。 :该状态码表示客户端发送附带条件的请求时,服务器端允许请求访问资源,但因发生请求未满足条件的情况后直接返回304.304状态码返回时,不包含任何响应的主体部分0.304虽然被划分在3XX类别中,但是和重定向没有关系。(附带条件的请求时指采用GET方法的请求报文中包含If-Match,If-Modified-Since,If-Range等任一首部)307 Temporary Redirect:临时重定向。该状态码与302发现有着相同的含义。

4xx客户端错误

400 Bad Request:该状态码表示请求报文中存在语法错误。

401未授权:该状态码表示发送的请求需要有通过HTTP认证(BASIC认证,DIGEST认证)的认证信息。另外若之前已进行过1次请求,则表示用户认证失败。

403 Forbidden:该状态码表明对请求资源的访问被服务器拒绝了。未获得文件系统的访问授权,访问权限出现某些问题等情况都可能发生403。

404 Not Found:该状态码表明服务器上无法找到请求的资源。除此之外,也可以在服务器端拒绝请求且不想说明理由时使用。

5xx服务器错误

500内部服务器错误:该状态码表明服务器端在执行请求时发生了错误,也有可能是Web应用存在的Bug或某些临时的故障。

503服务不可用:该状态码表明服务器暂时处于超负荷或正在进行停机维护,现在无法处理请求。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值