热门课程

免费试听

上课方式

开班时间

当前位置: 首页 -   文章 -   新闻动态 -   正文

知了堂_HTTP传输协议详细课程(二)

知了堂姐
2024-07-08 17:22:16
0

HTTP的请求方法


1.    GET

向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中。


2.    HEAD

DEAD方法与GET方法一样,都是向服务器发出指定资源的请求。但是HEAD方法请求时:服务器将不传回资源的本文部分。这样的优点是:可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。


3.    POST

向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。


4.    PUT

向指定资源位置上传其最新内容。


5.    DELETE

请求服务器删除Request-URI所标识的资源。


6.    TRACE

回显服务器收到的请求,主要用于测试或诊断。


7.    OPTIONS

Options方法可使服务器传回该资源所支持的所有HTTP请求方法。用'*'来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。


8.    CONNECT

Connect方法是HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

扩展:GET和POST请求的区别

1.    请求提交

l GET提交,请求的数据会附在URL之后(就是把数据放置在HTTP协议头中),以?分割URL和传输数据,多个参数用&连接;

l POST提交:把提交的数据放置在是HTTP包的包体中。上文示例中红色字体标明的就是实际的传输数据。


2.    传输数据大小

l 首先声明:HTTP协议没有对传输的数据大小进行限制,HTTP协议规范也没有对URL长度进行限制。

l GET:传输数据就会受到URL长度的限制,特定浏览器和服务器对URL长度有限制。

l POST:由于不是通过URL传值,理论上数据不受 限。但实际各个WEB服务器会规定对post提交数据大小进行限制,Apache、IIS6都有各自的配置。


3.    安全性

POST的安全性要比GET的安全性高。比如:通过GET提交数据,用户名和密码将明文出现在URL上,因为(1)登录页面有可能被浏览器缓存;(2)其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用GET提交数据还可能会造成Cross-site request forgery攻击。


4.    变量取值

l GET方式需要使用Request.QueryString来取得变量的值;

l POST方式通过Request.Form来获取变量的值。


HTTP状态码


1.    简介


状态码是用以表示网页服务器超文本传输协议响应状态的3位数字代码。


2.    状态码含义


状态代码的第一个数字代表当前响应的类型:

l 1xx消息——请求已被服务器接收,继续处理

l 2xx成功——请求已成功被服务器接收、理解、并接受

l 3xx重定向——需要后续操作才能完成这一请求

l 4xx请求错误——请求含有词法错误或者无法被执行

l 5xx服务器错误——服务器在处理某个正确请求时发生错误


3.    常见状态码


(1)2xx--成功--(3种)


l 200 OK:表示从客户端发送给服务器的请求被正常处理并返回;

l 204 No Content:表示客户端发送给客户端的请求得到了成功处理,但在返回的响应报文中不含实体的主体部分(没有资源可以返回);

l 206 Patial Content:表示客户端进行了范围请求,并且服务器成功执行了这部分的GET请求,响应报文中包含由Content-Range指定范围的实体内容。


(2)3xx--重定向--(5种)


l 301 Moved Permanently:永久性重定向,表示请求的资源被分配了新的URL,之后应使用更改的URL;

l 302 Found:临时性重定向,表示请求的资源被分配了新的URL,希望本次访问使用新的URL;

² 301与302的区别:前者是永久移动,后者是临时移动(之后可能还会更改URL)

l 303 See Other:表示请求的资源被分配了新的URL,应使用GET方法定向获取请求的资源;

² 302与303的区别:后者明确表示客户端应当采用GET方式获取资源

l 304 Not Modified:表示客户端发送附带条件(是指采用GET方法的请求报文中包含if-Match、If-Modified-Since、If-None-Match、If-Range、If-Unmodified-Since中任一首部)的请求时,服务器端允许访问资源,但是请求为满足条件的情况下返回改状态码;

l 305 Use Proxy:使用代理。所请求的资源必须通过代理访问

l 306 Unused:已经被废弃的HTTP状态码

l 307 Temporary Redirect:临时重定向,与303有着相同的含义,307会遵照浏览器标准不会从POST变成GET;(不同浏览器可能会出现不同的情况);


(3)4xx--客户端错误--(4种)


l 400 Bad Request:表示请求报文中存在语法错误;

l 401 Unauthorized:未经许可,需要通过HTTP认证;

l 403 Forbidden:服务器拒绝该次访问(访问权限出现问题)

l 404 Not Found:表示服务器上无法找到请求的资源,除此之外,也可以在服务器拒绝请求但不想给拒绝原因时使用;

l 405 Method Not Allowed 客户端请求中的方法被禁止

l 406 Not Acceptable  服务器无法根据客户端请求的内容特性完成请求

l 407 Proxy Authentication Required      请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权

l 408 Request Time-out     服务器等待客户端发送的请求时间过长,超时

l 409 Conflict 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突

l 410 Gone     客户端请求的资源已经不存在。410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置

l 411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息

l 412 Precondition Failed   客户端请求信息的先决条件错误

l 413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息

l 414 Request-URI Too Large     请求的URI过长(URI通常为网址),服务器无法处理

l 415 Unsupported Media Type 服务器无法处理请求附带的媒体格式

l 416 Requested range not satisfiable    客户端请求的范围无效

l 417 Expectation Failed    服务器无法满足Expect的请求头信息


(4)5xx--服务器错误--(5种)


l 500 Inter Server Error:表示服务器在执行请求时发生了错误,也有可能是web应用存在的bug或某些临时的错误时;

l 503 Server Unavailable:表示服务器暂时处于超负载或正在进行停机维护,无法处理请求;

504

Gateway Time-out

充当网关或代理的服务器,未及时从远端服务器获取请求

505

HTTP Version not supported

服务器不支持请求的HTTP协议的版本,无法完成处理


大家都在看

在线学习Java有哪些课程培训平台推荐?有免费课...

2024-07-08 浏览次数:0

网络安全培训机构值得去吗?培训机构出来能找到工作...

2024-07-08 浏览次数:0

0基础,学UI好还是学前端好?

2024-07-08 浏览次数:0

ui设计和软件开发哪个好?Java和UI哪个好?

2024-07-08 浏览次数:0

四川工商职业技术学院&知了堂 IT菁英人...

2024-07-08 浏览次数:0

Java入门需要掌握哪些知识?Java入门级要点

2024-07-08 浏览次数:0
最新资讯