加入收藏 | 设为首页 | 会员中心 | 我要投稿 宁德站长网 (https://www.0593zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

基础拾掇之——http基础

发布时间:2021-01-10 07:05:02 所属栏目:安全 来源:网络整理
导读:副标题#e# 《基础拾掇之——http基
副标题[/!--empirenews.page--]

《基础拾掇之——http基础》要点:
本文介绍了基础拾掇之——http基础,希望对您有用。如果有疑问,可以联系我们。

http协议介绍

http:Hyper Text Transfer Protocol 超文本传输协议,是互联网应用最为广泛的一种网络协议,主要用于Web服务.通过计算机处理文本信息,格式为HTML(Hyper Text Mark Language)超文本标记语言来实现.

http协议的版本

  • http 0.9:仅于用户传输html文档
  • http 1.0
    • 引入了MIME(Multipurpose Internet Mail Extesions)机制:多用途互联网邮件扩展,引入这个技术之后,http可以发送多媒体(比如视频、音频等)信息.此机制让http不在单单只支持html格式,还可以支持其他格式来进行发送了.
    • 引入了keep-alive机制,支持持久连接的功能(但这个keep-alive原理是在首部添加了某个字段而形成的,并非原生就支持此功能)
    • 引入支持缓存功能
  • http 1.1
    支持更多的请求方法,更加精细的缓存控制,原生直接支持持久连接功能(presistent).
  • http 2.0
    提供了HTTP语义优化的传输
  • spdy : google引入了的一个技术,能够加速http数据交互,尤其是使用ssl 加速机制,但是spdy现在用的还不多.

目前常用的版本就是http 1.0版本和http 1.1版本.

html文本介绍

html文本架构

<html>
 ? ?<head>
 ? ? ? ?<title>TITLE</title>
 ? ?</head>
 ? ?<body>
 ? ? ? ?<h1>H1</h1>
 ? ? ? ? ? ?<p></p>
 ? ?<h2>H2</h2>
 ? ? ? ?<p><a href="admin.html" rel="external nofollow" target="_blank">ToGoogle</a> </p>
 ? ?</body>
</html>

html文档的生成方式

  • 静态
    事先就编辑并定义完成的
  • 动态
    通过编译语言编写的程序后输出html格式的结果
    动态语言有:php,jsp,asp,.net

    备注:这些脚本都必须有相应的解释器,比如说 php需要有php解释器等等

静态和动态的方式

  • 静态

  • 1、Web服务器向内核注册socket
    2、客户端通过浏览器,向Web服务器发起request请求
    3、Web服务器收到客户端的request信息
    4、如果用户请求的资源在服务器本地的话,http服务会向系统内核申请调用
    5、内核调用本地磁盘里的数据,并将数据发给http服务
    6、http将用户请求的资源通过response报文,最终响应给客户端
  • 动态

  • 与静态不同的是,如果用户请求的是动态内容,那么此时http服务会调用后端的解析器,由动态语言去处理用户的请求,如果需要请求数据的时候,会向内核申请调用,从而向磁盘中获取用户指定的数据,通过解释器运行,运行的结果通常会生成html格式的文件.然后构建成响应报文,最终发回给客户端.

http协议

http协议的报文

HTTP报文中存在着很多行的内容,一般是由ASCII码串组成,各字段长度是不确定的.HTTP的报文可分为两种:请求报文与响应报文

  • request Message(请求报文)
    客户端 ?-→ ?服务器端
    由客户端向服务器端发出请求,不同的网站用于请求不同的资源(html文档)
  • response Message(响应报文)
    服务器端 -→ 客户端
    是服务器予以响应客户端的请求

请求报文格式介绍

请求行 + 请求首部 + 空白行 + 请求实体

<method> 这次请求的方式是什么,也就是请求方法
<request-URL> 请求的是哪个资源,哪个URL.可以是相对路径,如/images/log.jpg,也可以是绝对路径,如http://www.magedu.com/images.banner.jpg
<version> 请求的协议版本是什么,http协议版本,格式HTTP/<major>.<minor>,例如:HTTP/1.0,HTTP/1.1<HEADERS> 首部,首部可能不止一个.各种所可以使用的首部信息
<entity-body> 请求实体,你到底请求的内容是什么
  • 请求行
    由 请求方法字段<method>+请求URL字段<request-URL>+HTTP协议版本<version>组成,用来标识客户端请求的资源时使用的请求方法,请求的资源,请求的协议版本是什么,它们直接使用“空格”进行分隔!
  • 请求首部
    由关键字+关键字的值组成,之间使用“:”进行分隔,格式Name:Value,请求首部的作用是通过客户端将请求的相关内容告知服务器端,首部可以不止一个.
  • 空白行
    请求首部之后会有一个空白行,通过发送回车字符和换行符,用于通知服务器端一下的内容将不会再出现请求首部的信息.
  • 请求实体
    你需要请求的内容到底是什么

    例如:
    <method> <request-URL> <version>
    <HEADERS> ? ? ? ? ? ? ? ? ? ? ?
     # 这里一定要是一个空白行
    <entity-body>

    响应报文格式介绍

    起始行 + 响应首部 + 空白行 + ?响应实体

<version> 响应时客户端请求的是什么版本,服务器端就需要响应什么版本
<status> 请求的状态码是什么 202,403等
<reason-phrase> 响应的状态码的信息是什么,原因短语,这个状态码所响应的意义,易读信息
<HEADERS> 一大堆的响应首部
<entity-body> 响应体
  • 起始行
    也称之为状态行,用于服务器端响应客户端请求的状态信息,由版本号<version> + 状态码<status> + 原因短语<reason-phrase>组成,例如“ HTTP/1.1 200 OK”
  • 响应首部
    类似请求报文,起始行后面一般有若干个头部字段.每个头部字段都包含一个名字和一个值,两者之间用冒号分割.格式Name:Value.
    例如:
    Content-Type: test/html; charset=utf-8
    Content-Length: 78
  • 空白行
    最后一个响应首部信息之后就是一个空行,通过发送回车符和换行符,通知客户端空行下无首部信息
  • 响应实体
    响应实体中装载了要返回给客户端的数据.这些数据可以是文本,也可以是二进制(例如图片,视频)
例如:
<version> <status> <reason-phrase>
<HEADERS> ? ? ? ? ? ? ? ? ? ? ? ?
# 这里一定要是一个空白行
<entity-body>

HTTP请求方法

在HTTP通信过程中,每个HTTP请求报文中都会包含一个HTTP请求方法,用于告知客户端向服务器端请求执行某些具体的操作,下面列举几项常用的HTTP请求方法.

常用的HTTP请求方式是GET,POST,HEAD

HTTP的状态码

(编辑:宁德站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!