了解http协议

本文详细介绍了HTTP的概念、请求过程、响应结构、状态码,以及如何提升连接性能。涵盖了互联网、万维网、URL、HTTP协议的不同版本及其功能,以及常见的Web服务器如Apache、Nginx的应用。

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

http的相关概念

  • 互联网:是网络的网络,是所有类型网络的母集

  • 因特网:世界上最大的互联网网络。即因特网概念从属于互联网概念。习惯上,大家把连接在因特网上的计算机都成为主机。

  • 万维网:数据库

  • URL:万维网使用统一资源定位符。描述了一个资源在服务器上的具体的位置,http软件默认的根的位置在 /var/www/html

  • HTTP:超文本传输协议(通过这个协议可以传输图片,视频,小程序)

                  apach,nginx,tomcat是用HTTP传输协议

  • HTML:它描述了超文本页面,用各种“标签”定义文字、图片等资源和排版布局,最终由浏览器“渲染”出可视化页面。

HTTP请求访问的完整过程

  1. 建立连接

  2. 接收请求

  3. 处理请求

  4. 访问资源

  5. 构建响应报文

  6. 发送响应报文

  7. 记录日志

1.建立连接

三次握手(二次没法确认双方有回包能力,四次会浪费)

2.接收请求

接收客户端请求报文中对某资源的一次请求的过程

3.处理请求

对应到配置文件处理请求

常用的请求:GET(下载),POST(上传),HEAD(测试信息),PUT(上传),DELETE(删除资源),TRACE,OPTIONS

4.访问资源

服务器获取请求报文中请求的资源web服务器,即存放了web资源的服务器,负责向请求者提供对方请求的静态资源,或动态运行后生成的资源

静态资源:不需要服务器二次加工处理,直接将文件交给客户端

                  txt,jpg,视频

动态资源:需要服务器二层加工处理后,将加工后的结果传给客户端

                 php,java,python

我们的web软件(apache,nginx)不太擅长处理动态资源

5.构建响应报文

方法含义
GET获取资源
HEAD获取报文首部
POST传输实体主体(比如传输 用户名密码)
PUT上传文件
PATCH对资源进行部分修改
DELETE删除文件
OPTIONS查询支持的方法(查看服务端可以支持哪些方法)
CONNECT要求在与代理服务器通信时建立隧道(类似加密)
TRACE追踪路径

6.发送响应报文

7.记录日志

最后,当事务结束时,Web服务器会在日志文件中添加一个条目,来描述已执行的事务

HTTP工作机制

事务:操作的集合

一次http事务包括:

http请求、http响应

HTTP协议报文格式

请求报文: 请求行(请求方法、请求URL、http协议版本)

                请求头(键值类型的元信息)

                请求体(post提交的内容)

响应报文: 响应行 (http协议版本、状态码、状态描述)

                响应头(键值类型的元信息)

                响应体(服务器返回的html数据)

提高HTTP连接性能:

  • 并行连接:同时最多下4个资源,一次三次握手

  • 持久连接(长连接):一次三次握手,下载多个资源

  • 管道化连接:通过共享TCP连接,发起并发的HTTP请求

  • 复用的连接:交替传送请求和响应报文(实验阶段

持久连接(长连接)如何断开:

1.到时间了自动断开

2.规定下载的个数,完成后就断开

http的文件夹的位置

主进程:/usr/sbin/httpd

主配置文件: /etc/httpd

主配置文件:/etc/httpd/conf/httpd.conf

日志文件:/bat/log/httpd/access.log 成功的日志 error_log 错误的日志

主站点文件夹:/var/www/html/

后期如遇到大量改动配置文件

http -t 检测你懂配置文件是否有格式,语法,拼写错误

改完配置文件记得重启httpd服务

HTTP的版本

http0.9:只有下载(get)

http1.0:有下载(get)和上传(put),不支持持久连接

http1.1:有下载和上传,支持持久连接

http2.0:二进制传输,支持持久连接,支持完全多路复用(一个tcp连接中同时发送多个请求,且不用按照顺序一一对应),支持网页头部压缩,支持服务端主动推送。

http3.0:基于udp协议的

http的状态码

状态码:

1xx:100-101 信息提示

2xx:200-206 成功

3xx:300-307 重定向

4xx:400-415 错误类信息,客户端错误

5xx:500-505 错误类信息,服务器端错误

常用的状态码:

200 OK
请求成功(其后是对GET和POST请求的应答文档)
301 Moved Permanently
请求的永久页面跳转,永久重定向,缓存在你的主机上
302
临时重定向,服务器会再次解析
307
浏览器内部重定向
401
用户名/密码验证错误
403 Forbidden
禁止访问该页面
404 Not Found*
服务器无法找到被请求的页面
500 Internal Server Error
内部服务器错误
502 Bad Gateway*
无效网关
503 Service Unavailable
当前服务不可用
504 Gateway Timeout*
网关请求超时
​
​

4开头的状态码

400 Bad Request 客户端请求的语法错误,服务器无法理解 
401 Unauthorized 请求要求用户的身份认证 
402 Payment Required 保留,将来使用 
403 Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求 
404 Not Found 服务器无法根据客户端的请求找到资源(网页) 。通过此代码,网站设计人员可设置’您所请求的资源无法找到"的个性页面 
405 Method Not Alowed 客户端请求中的方法被禁止 
406 Not Acceptable 服务器无法根据客户端请求的内容特性完成请求 
407 Proxy Authentication Required 请求要求代理的身份认证,与401类似, 但请求者应当使用代理进行授权 
408 Request Time-out 服务器等待客户端发送的请求时间过长,超时 
409 Conflict 服务器完成客户端的PUT请求是可能返回此代码,服务器处理请求时发生了冲突 
410 Gone 客户端请求的资源已经不存在。410不同于404, 如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置 
411 Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息 
412 Precondition Failed 客户端请求信息的先决条件错误 
413 Request Entity Too Large 由于请求的实体过大,服务器无法处理,因此拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务Large器暂时无法处理,则会包含-个Retry-After的响应信息 
414 Request-URI Too Large 请求的URI过长(URI通常为网址),服务 器无法处理 
415 Unsupported Media Type 服务器无法处理请求附带的媒体格式 
416 Requested range not satisfiable 客户端请求的范围无效 
417 Expectation Failed 服务器无法满足Expect的请求头信息

5开头的状态码

500 Internal Server Error 
服务器内部错误 ,无法完成请求 
501 Not Implemented 
服务器不支持请求的功能,无法完成请求 
502 Bad Gateway 
充当网关或代理的服务器,从远端服务器接收到了一个无效的请求 
503 Service Unavailable 
由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中 
504 Gateway Time-out 
充当网关或代理的服务器,未及时从远端服务器获取请求 
505 HTTP Version not supported 
服务器不支持请求的HTTP协议的版本,无法完成处理
​
​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值