首页 > 其他分享 >认识HTTP协议与apache

认识HTTP协议与apache

时间:2023-12-09 18:33:25浏览次数:29  
标签:协议 HTTP 请求 httpd 报文 apache 服务器 连接

万维网:(www)并非计算机网络,而是一个大型的数据库,可以实现网页与网页之间的跳转

url:资源定位符 描述了一个资源在服务器上的具体位置

http:超文本传输协议 图片 视频 小程序

http: Hyper Text Transfer Protocol 应用层协议,默认端口: 80/tcp

可以使用http协议的软件

  • apache

  • nginx

  • tomcat

HTTP的工作机制

一次http事务包括:

  • http请求:http request

  • http响应:http response

事务:操作的集合

资源类型:

  • 静态文件:无需服务端做出额外处理,服务器端和客户端的文件内容相同

    常见文件后缀:.html, .txt, .jpg, .js, .css, .mp3, .avi

  • 动态文件:服务端执行程序,返回执行的结果,服务器端和客户端的文件内容不相同

    常见文件后缀:.php, .jsp ,.asp

HTTP连接的类型:

  • 并行连接:通过多条TCP连接发起并发的HTTP请求

  • 持久连接:keep-alive,重用TCP连接,以消除连接和关闭的时延,以事务个数和时间来决定是否关闭连接

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

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

HTTP协议的版本

  • 0.9:只能下载
  • 1.0:上传 下载 无长连接
  • 1.1:支持长连接

长连接:一次三次握手,多次下载

 

http请求访问的完整过程

  1. 建立连接
    接收或拒绝连接请求

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

  3. 处理请求

    服务器对请求报文进行解析,并获取请求的资源及请求方法等相关信息,根据方法,资源,首部和可选的主体部分对请求进行处理

    常用请求Method: GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS

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

  5. 构建响应报文
    响应实体
    URL重定向
    MIME类型

  6. 发送响应报文
    Web服务器通过连接发送数据时也会面临与接收数据一样的问题
    对非持久连接而言,服务器应该在发送了整条报文之后,关闭自己这一端的连接。对持久连接来说,连接可能仍保持打开状态,在这种情况下,服务器要正确地计算Content-Length首部,不然客户端就无法知道响应什么时候结束

  7. 记录日志

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

     

HTTP请求报文的类型

  • GET: 获取资源 当前网络请求中,绝大部分使用的是 GET 方

  • HEAD: 获取报文首部,主要用于确认 URL 的有效性以及资源更新的日期时间等

  • POST: 传输实体主体 (比如传输 用户名密码)

  • PUT: 上传文件(比如写博客)

  • PATCH: 对资源进行部分修改

  • DELETE:删除文件

  • OPTIONS:查询支持的方法(查看服务端可以支持哪些方法)

  • CONNECT:要求在与代理服务器通信时建立隧道(类似加密)

  • TRACE:追踪路径

HTTP协议状态码

  • 1xx:100-101 信息提示
  • 2xx:200-206 成功
  • 3xx:300-307 重定向
  • 4xx:400-415 错误类信息,客户端错误
  • 5xx:500-505 错误类信息,服务器端错误

 HTTP协议常用的状态码

200: 成功,请求数据通过响应报文的entity-body部分发送;OK
301: 请求的URL指向的资源已经被删除;但在响应报文中通过首部Location指明了资源现在所处的新位置;Moved Permanently
302: 响应报文Location指明资源临时新位置 Moved Temporarily
304: 客户端发出了条件式请求,但服务器上的资源未曾发生改变,则通过响应此响应状态码通知客户端;Not Modified
307:  浏览器内部重定向
401: 需要输入账号和密码认证方能访问资源;Unauthorized
403: 请求被禁止;Forbidden
404: 服务器无法找到客户端请求的资源;Not Found
500: 服务器内部错误;Internal Server Error,比如:cgi程序没有执行权限
502: 代理服务器从后端服务器收到了一条伪响应,如无法连接到网关;Bad Gateway
503: 服务不可用,临时服务器维护或过载,服务器无法处理请求,比如:php服务停止,无法处理php程序
504: 网关超时

 

apache

  • 提供http协议服务

  • 多个虚拟主机:IP、Port、FQDN

  • CGI:Common Gateway Interface,通用网关接口,支持动态程序

  • 反向代理

  • 负载均衡

  • 路径别名

  • 丰富的用户认证机制:basic,digest

  • 支持第三方模块

apache特性:

  • 高度模块化:core + modules

  • DSO:Dynamic Shared Object 动态加载/卸载

  • MPM:multi-processing module 多路处理模块

 

HTTP的安装与相关配置

由httpd安装包提供

yum  install  httpd  -y

centos7以上版本默认的是httpd2.4版本   centos6版默认为httpd2.2

Ubuntu 18.04 默认 Apache/2.4.29

httpd-2.4相关文件

配置文件

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

  • /etc/httpd/conf.d/*.conf 子配置文件

  • /etc/httpd/conf.d/conf.modules.d/ 模块加载的配置文件

服务单元文件:

  • /usr/lib/systemd/system/httpd.service

  • 配置文件:/etc/sysconfig/httpd

服务单元文件:

  • /usr/lib/systemd/system/httpd.service

  • 配置文件:/etc/sysconfig/httpd

主服务器程序文件:

  • /usr/sbin/httpd

标签:协议,HTTP,请求,httpd,报文,apache,服务器,连接
From: https://www.cnblogs.com/chenjw0608/p/17891272.html

相关文章

  • ApacheCC1反序列化分析
    ApacheCC1反序列化分析写在前面:这条链路对初学者来说并不是那么简单的,大家在学习时一定要多动手调试代码,有的时候光看代码看得头大,一调试就都明白了。一、背景介绍首先,什么是cc1cc全称Common-Collections,是apache基金会的一个项目,它提供了比原生的java更多的接口和方法,比如说......
  • robots.txt禁止收录协议写法
    1. 什么是robots.txt?robots.txt 是网站和搜索引擎的协议的纯文本文件。当一个搜索引擎蜘蛛来访问站点时,它首先爬行来检查该站点根目录下是否存在robots.txt,如果存在,根据文件内容来确定访问范围,如果没有,蜘蛛就沿着链接抓取。robots.txt 放在项目的根目录下。2. robots.txt......
  • 1.理论、算法、协议
    1.CAP理论CAP也就是Consistency(一致性)、Availability(可用性)、PartitionTolerance(分区容错性)这三个单词首字母组合。在理论计算机科学中,CAP定理(CAPtheorem)指出对于一个分布式系统来说,当设计读写操作时,只能同时满足以下三点中的两个:一致性(Consistency):所有节点访问......
  • AMQP协议中的,消息队列RabbitMQ,ActiveMQ,Apache Kafka区别是什么?
    都是基于AMQP协议来的一种实现方式。参考chatGPT4回答请使用Markdown表格来展示RabbitMQ、ActiveMQ和ApacheKafka之间的区别:维度RabbitMQActiveMQApacheKafka语言ErlangJavaScala/Java协议AMQP、STOMP、MQTTAMQP、STOMP、OpenWire自定义协议......
  • 深入探究 Python 异步编程:利用 asyncio 和 aiohttp 构建高效并发应用
    在现代编程中,异步编程已成为处理高并发和IO密集型任务的重要方式。Python提供了强大的异步编程支持,包括asyncio库和aiohttp等框架。本文将深入探讨异步编程的概念,以及在Python中如何利用异步框架来实现高效的并发编程。1.异步编程概念异步编程允许程序在等待IO操作完成时......
  • 如何在 Angular 应用中发起 HTTP 302 redirect
    代码如下:import{RESPONSE}from'@nguniversal/express-engine/tokens'import{Response}from'express'...constructor(protected@Optional()@Inject(RESPONSE)serverResponse:Response){}...//forexample:this.serverResponse?.status......
  • HTTP 302 Redirect 解释与举例
    HTTP302Redirect解释与举例HTTP302Redirect是指HTTP协议中的一种重定向状态码,用于指示请求的资源被临时移动到其他位置。这种状态码告诉客户端发起新的请求,新的请求将指向重定向后的位置。在Web开发中,302重定向常用于实现页面跳转、URL重定向以及处理用户身份验证等场景。......
  • 网络层协议及ip编址
    网络层协议及ip编址IP协议报文字段长度/位含义Version版本号4指定IP协议的版本;通信双方使用的IP协议版本必须一致;目前使用最广泛的IP协议版本号为4,即IPv4。现在已经开始普及IPv6了IHL首部长度4可表示的最大十进制数值是15,IP首部长度......
  • LWIP官方httpd使用之GET
    前言httpd的移植可以参考上篇文章LWIP官方DEMO使用之httpd服务-USTHzhanglu-博客园(cnblogs.com)此博文为学习笔记,仅介绍如何使用官方demo,无更深入分析。此博文介绍了如何通过GET返回各种数据。关键词:LWIP,HTTP,HTTPD,GET|LWIP版本|lwip-STABLE-2_2_0_RC1|GET......
  • httpclient跳过SSL证书验证的写法
    最近在请求https接口的时候,发生了异常:sun.security.validator.ValidatorException:PKIXpathbuildingfailed:sun.security.provider.certpath.SuncertPathBuilderException:unabletofindvalidcertificationpathtorequestedtarget无法找到到请求目标的有效证书路......