欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > 应用层协议HTTP介绍

应用层协议HTTP介绍

2024/11/30 17:49:43 来源:https://blog.csdn.net/qhy850716/article/details/142104970  浏览:    关键词:应用层协议HTTP介绍

一、HTTP协议介绍

HTTP(HyperText Transfer Protocol,超文本传输协议)是一个至关重要的协议。它定义了客户端(如浏览器)与服务器之间如何通信,以交换或传输超文本。

超文本:视频,音频,图片...

HTTP 协议是一个无连接、无状态的协议,即每次请求都需要建立新的连接,且服务器不会保存客户端的状态信息。

二、URL

就是我们平时说的网址。

我们会发现好像https协议里面没有端口号,真是这样的话就不能找到一个唯一的资源。

其实协议名称和端口号是强相关的,当浏览器发起请求时会自动拼接端口号80,也就是https对应80号端口,所以端口号被默认忽略。

注意:

URL里面有自己的特殊字符,://#=&,若用户访问资源时URL里面要拼接这些字符就会对URL产生干扰,所以要对特殊字符进程编码(urlencode:% + 特殊字符ASCII码的16进制)

三、HTTP协议请求格式

请求方法:GET,POST,HEAD,DELETE...

URI:要访问的资源路径,不区分URL

HTTP版本:http/1.0   http/1.1   http/2.0   ...

四、HTTP协议应答格式

应答正文一定有资源路径。

五、HTTP请求方法

1、GET

一般用来获取静态资源,也可以通过 url 向服务器发送参数。

如上图,?字符之后就是参数,username 是 .sgrh,还有一个参数 password 是 190420

2、POST

通过 http 请求正文发送参数

3、GET vs POST

(1)url 传递参数大小不大

(2)POST 比 GET 传参更私密,但两者都不安全,要对正文加密才安全。

4、如何实现请求方法

前端网页必须要有 form 表单,默认 method 是 GET

若 method 是 GET,用户名密码写入请求的 url 中。

若 method 是 POST,用户名密码写入请求的正文中。

action 是一种服务,一个写好的业务。

这里的 /s 就是百度的一个业务 search,参数有 wd=hello,是搜索关键字 hello

六、HTTP常见请求报头

Content-Type: 数据类型(text/html 等)

Content-Length: 正文的长度。

Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上。

User-Agent: 声明用户的操作系统和浏览器版本信息。

referer: 当前页面是从哪个页面跳转过来的。

Location: 搭配 3xx 状态码使用, 告诉客户端接下来要去哪里访问。

Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的。

connection报头

HTTP 中的 Connection 字段是 HTTP 报文头的一部分,它主要用于控制和管理客户 端与服务器之间的连接状态

核心作用

管理持久连接:Connection 字段还用于管理持久连接(也称为长连接)。持久连接允许客户端和服务器在请求/响应完成后不立即关闭 TCP 连接,以便在同一个连接 上发送多个请求和接收多个响应。

HTTP/1.1:在 HTTP/1.1 协议中,默认使用持久连接。当客户端和服务器都不明 确指定关闭连接时,连接将保持打开状态,以便后续的请求和响应可以复用同一个连 接。  

HTTP/1.0:在 HTTP/1.0 协议中,默认连接是非持久的。如果希望在 HTTP/1.0 上实现持久连接,需要在请求头中显式设置 Connection: keep-alive。

语法格式

Connection: keep-alive:表示希望保持连接以复用 TCP 连接。

Connection: close:表示请求/响应完成后,应该关闭 TCP 连接。

Cookie 报头

用于在客户端存储少量信息,用于会话功能,方便随时验证用户身份。

例如,一开始你访问爱奇艺网站,你要先登录,如果你不是会员,你就要看广告,当你去看下一集时网站在此建立请求,如果没有 cookie 保存用户信息,你又要登录。

所以客户端发给服务器请求时会带上 cookie 信息,告诉服务器用户身份。

七、HTTP状态码和状态码描述

1、介绍状态码

状态码含义举例
100Continue我接受了你的请求,请你继续。上传大文件时,服务器告诉客户端可以 继续上传
200OK请求处理完成,过程一切正确
201Created创建成功(文件,文章...)
204No Content删除成功(文件,文章...)
301Moved Permanently网站换域名后,自动跳转到新域名;搜 索引擎更新网站链接时使用
302Found用户登录成功后,重定向到用户首页
304Not Modified浏览器缓存机制,对未修改的资源返回 304 状态
400Bad Request填写表单时,格式不正确导致提交失败
401Unauthorized访问需要登录的页面时,未登录或认证 失败
403Forbidden尝试访问你没有权限查看的页面
404Not Found访问页面不存在
500Internal Server Error服务器崩溃或数据库错误导致页面无法 加载
502Bad Gateway使用代理服务器时,代理服务器无法从 上游服务器获取有效响应
503Service Unavailable服务器维护或过载,暂时无法处理请求

2、理解重定向

3、永久重定向 vs 临时重定向

(1)永久重定向

当服务器发生更改,老客户访问时会被添加包含新服务器 url 的 Location 请求报头,浏览器自动重定向。一般用于网站更换域名之后自动跳转到新域名,给搜索引擎更新连接使用(新替换旧)

(2)临时重定向

也会添加 Location 报头,但是不会缓存重定向,一般用于临时从一个页面跳转到另一个页面。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com