HTTP入门知识-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

HTTP入门知识

简介:
+关注继续查看

http: HyperText Transfer Protocol: 文本传输协议

html: HyperText Mark Language:超文本标记语言。

http监听在80/tcp

request报文请求

response报文响应


报文传输过程:应用层协议发送get命令,ftp协议对get命令进行封装,报文传输到tcp层之后,在这一层为其添加目标端口和源端口,就标记了进程的地址,然后报文被送到ip层,再为其封装一个ip首部,就标记了源ip地址和目标ip地址,就能够找到目标主机。再通过链路层传送,最终通过物理层到达目的地。

报文接收:内核监控得知网卡接收报文,内核将报文进行处理,首先判断物理地址是否对应,对应了再看看目标ip地址是否对应,看完后再检查端口,这样就找到了对应的服务。

动态端点:

   客户端动态:极不安全

   applet

   服务器端动态:

   CGI: Common Gateway Interface :通用网关接口

web资源:

  web object

http版本:

   http/0.9: stateless 仅能响应文本

   http/1.0: MIME, keep-alive (保持连接), 缓存

      Multipurpose Internet Mail Extesions, 多功能,多用途互联网邮件扩展

   将非文本信息编码成二进制格式,由smtp进行传送,传送过去由浏览器解码查看。浏览器只能识别html格式的内容,所以还要调用外部的工具进行查看。或者浏览器自己有插件,这样也能查看内容了。

MIME

   major/minor(主格式/次格式

   image/jpg jpg格式的图片

   image/gif  gif格式的图片

   text/html 纯文本格式

   video/quicktime视频流

   appliation/x-httpd-php

http/1.1: 更多的请求方法,更精细的缓存控制,持久连接(persistent connection)

    URI: Uniform Resource Identifier统一资源标识符

    URLUniform Resource Locator统一资源定位

 格式:scheme://[username:password@]HOST:port/path/to/source

     例如:http://www.magedu.com/downloads/nginx-1.5.tar.gz

  URN:统一资源命名符

HTTP事务:一个请求以及与其对应的响应报文

HTTP方法:

  GET: 完整请求一个资源

  HEAD: 仅请求响应首部

  POST:提交表单

  PUT: (webdav)

  DELETE(webdav)

  OPTIONS:返回请求的资源所支持的方法的方法

  TRACE: 一个资源请求中间所经过的代理

HTTP缓存机制:

     私有缓存

     公共缓存

HTTP的响应码:

   1xx: 信息性状态码

        100, 101

   2xx: 成功状态码

        200OK

   3xx: 重定向状态码

        301: 永久重定向, Location响应首部的值仍为当前URL,因此为隐藏重定向;

        302: 临时重定向,显式重定向, Location响应首部的值为新的URL

        304Not Modified:没有修改(在条件请求中用到)

   4xx: 客户端错误状态码

        404: Not Found

   5xx: 服务器端错误状态码

        500: Internal Server Error(服务器在执行、配置上有问题)

        502: Bad Gateway(任何一个代理找不到上一级的代理的时候)

        503:服务不可用

        504Gateway Timeout:网关超时

HTTP报文格式:

    起始行

    首部:标签加上一个值。例如:Host: www.magedu.com

    主体

请求格式:request:

            <method> <request-URL> <version>

             请求方法    请求的URL    协议版本

            <headers>

               首部

            <entity-body>

                主体

例如:在浏览器搜素172.16.0.1/centos6.repo可以访问到文件内容

  Google浏览器F12键可以评估网页的性能,IE 浏览器需要安装htpwatch

#telnet 172.16.0.1 80 172.16.0.1站点的80号端口发送请求

GET  /  http/1.1

Host: 172.16.0.1

172001713.png

#telnet 172.16.0.1 80 172.16.0.1站点的80号端口发送请求

GET  /centos6.repo  http/1.1

Host: 172.16.0.1

得到结果:

172026391.png

响应格式:response:

           <version> <status> <reason-phrase>

              版本     状态码    原因短语

           <headers>

                首部

           <entity-body>

              主体部分

version: HTTP/major.minor, HTTP/1.0

HTTP报文首部:

   通用首部:请求和响应均可使用:例如:

            Connection: 指定连接选项

            Date: 报文创建日期和时间

            Via: 所经过的代理服务器

   请求首部:

            Host: 所请求的主机

            Referer: 提供了包含当前请求URI文档的URL

            Accept: 接受的MIME类型

            Accept-Charset:所接受的字符集

            Accept-Encoding: 接受的编码方式

            Accept-Lanague: 告诉服务器能够发送哪些语言

   条件请求首部:

            If-Modified-Since

            If-None-Match

   安全请求首部:

            Authorization: 客户端提供给服务器的认证信息;

            Cookie: 追踪用户状态

            Cookie2:

   响应首部:

            Age: 从最初创建开始,响应持续时间

            Server: 服务器软件名称及版本

            Vary: 会影响缓存机制(是否压缩等)

            Set-Cookie:设定Cookie

            Set-Cookie2

   实体首部:

            Allow: 允许的请求方法

            Location: 资源的实际位置

            Content-Language: 内容是那种语言

            Content-Location: 内容位置

            Content-Type: 内容类型。例如:MIME

            ETag: 实体标记

            Expires: 过期的缓存

            Last-Mofified上次修改的时间

一次HTTP事务的完成过程:

1、建立连接

2、接收请求

3、处理请求

4、获取资源

5、构建响应

6、回送响应

7、记录日志


高度模块化: DSO(动态共享对象)

MPMMultipath Processing Module:多路处理模块

      prefork: 一个进程响应一个请求

      worker:一个进程生成多个线程,一个线程响应一个请求

      event:事件驱动模式


        httpd-1.3非常稳定,但没有许多新的性能。官方不再维护

        httpd-2.0httpd-1.3很相近

        httpd-2.2   centos6默认所带的

        httpd-2.4最新的系列

httpd:

    alias 路径别名

    Auth用户认证

    virtual host虚拟主机

    Mpm模块属性定义


版本:HTTP/0.9, HTTP/1.0, HTTP/1.1


httpd的相关信息:

    服务脚本:/etc/rc.d/init.d/httpd

    运行目录:/etc/httpd

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

    主配置文件:httpd.conf

    扩展配置:/etc/httpd/conf.d/*.conf

    监听端口socket: http: 80/tcp, https: 443/tcp

    网页文件目录(DocumentRoot)/var/www/html

    CGI: /var/www/cgi-bin/

安装并启动web服务

需要注意的是httpd的默认安装会试图通过反解当前主机的ip地址来为httpd服务器提供一个主机名称,如果反解是失败的它就会报错,并且告诉你主机名称解析失败,使用127.16.4.1当做当前主机的主机名。所以为避免此问题,建议先编辑/etc/hosts

如:127.16.4.1    www.magedu.com    www           别名为www

安装httpd

   #service httpd start重启服务

   #chkconfig --list httpd 查看运行级别

   #chkconfig httpd on 打开2 3 4 5级别

默认主页面:index.html

直接以127.16.4.1 访问的时候,显示的是测试页面,即默认的主页面。我们编辑/var/www/html/index.html文件

<html>

     <title> Test Page</title>

     <body>

          <h1> Hello</h1>

            Hello word

     </body>

</html>

这样我们打开的就是我们所编辑的内容了。

如果我们不对/var/www/html/index.html文件进行编辑,又不想显示欢迎界面,那就需要修改配置页面了。

(1)/etc/httpd/conf/httpd.conf中修改

(2)/etc/httpd/conf.d目录下的welcome.conf删除或文件名改变

配置httpd的工作属性:vim /etc/httpd/conf/httpd.conf

指令不区分字符大小写,但约定俗成的习惯:单词的首字母大写;指令的值很有可能区分大小写;有些指令可以重使用多次;

配置文件的构成:主服务器和虚拟主机不能同时启用

   全局配置:对主服务器或虚拟机都有效,且有些功能是服务器自身工作属性;

   主服务器:主站属性;

   虚拟主机:虚拟主机及属性定义

配置文件语法测试:

    # service httpd configtest 检查语法是否有错误

    # httpd -t

大多数配置修改后,使用service httpd reload即能生效;

而修改监听的地址和端口通常需要重启服务,使用命令service httpd restart




本文转自 宋鹏超 51CTO博客,原文链接:http://blog.51cto.com/qidian510/1280126,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10089 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
11631 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
9161 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13891 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
7365 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
4506 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
22405 0
13694
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载