美文网首页
HTTP笔记

HTTP笔记

作者: 欢西西西 | 来源:发表于2021-11-21 17:24 被阅读0次

一、HTTP概述

1.资源

Web服务器是Web资源的宿主,资源不一定是静态文件,还可以是根据需要生成内容的软件程序

1.1 媒体类型 MIME(Multipurpose Internet Mail Extension)

Web服务器会为所有HTTP对象数据附加一个MIME类型,MIME是一种文本标记:主对象类型/子对象类型,例如:text/html  image/gif 

1.2 URI / URL /URN

URI:统一资源标识符(Uniform Resource Identifier ), URI有两种形式:URL和URN:

URL:统一资源定位符(Uniform Resource Locator ) ,URL描述了特定服务器上某资源的特定位置,现在几乎所有的URI都是URL,统一命名方式:scheme(方案,通常就是http协议,告知Web客户端怎样访问资源):// 服务器地址/资源路径

URN:统一资源名(Uniform Resource Name),URN作为特定内容的唯一名称使用,与目前的资源所在地无关。URL的缺点在于如果资源被移走了,URL就无效了,为了应对这个问题,提出了URN,无论对象搬移到什么地方,URN都能为对象提供一个稳定的名称

2. 连接

浏览器从URL中解析出服务器的主机名、浏览器将主机名解析为IP地址、浏览器从URL中解析端口号、浏览器建立一条与Web服务器的TCP连接、浏览器向服务器发送一条HTTP请求报文、服务器向浏览器回送一条HTTP响应报文、关闭连接,浏览器显示文档

3. Web的结构组件

- Web浏览器与Web服务器

- 代理

位于客户端和服务器之间,接收所有客户端的HTTP请求,并将这些请求转发给服务器,期间可能会对请求和响应进行修改或过滤

- 缓存

- 网关(gateway)

- 隧道(tunnel)

- Agent代理

 二、URL

1. 组成

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

scheme(方案),http协议的默认端口是80,https使用了网景的SSL,SSL为HTTP连接提供了端到端的加密机制,默认端口号为443

params(参数),由字符“;”将其与URL的其余部分以及各【名值对】分隔开

query(查询字符串),由字符“?”开头,用“&”将各【名值对】分隔开

frag(片段),为了引用部分资源或资源中的一个片段,URL支持使用frag组件表示一个资源内部的片段,比如某本书的某个章节。客户端不将片段传送给服务器,而是获得整个资源后,根据片段来显示部分资源,所以URL片段仅由客户端使用。

2. 相对URL

相对URL是在资源内部指定另一个资源位置的便捷缩略方式,比如我们在编写html时引用的那些相对资源路径;要从相对URL中获取访问资源的全部信息,就需要补全这个相对URL,而补全则需要相对base URL进行解析。baseURL可以:

a. 在资源中显式提供,比如html文档中的<base>标记,那么浏览器将使用指定的基本 URL 来解析所有的相对 URL

b. 未显式提供时,默认将它所属资源的URL作为基础

3. PURL

是用URL来实现URN功能的一个例子。其基本思想是在搜索资源的过程中引入另一个中间层。通过一个【中间资源定位符(Resource Locator)服务器】对资源的【实际URL】进行【登记和跟踪】。客户端可以向定位符请求一个永久URL,定位符可以以一个资源作为响应,将客户端【重定向】到资源当前实际的URL上去。

三、HTTP报文

1.  报文流

HTTP报文流是指在应用程序之间发送的数据块,这些报文在客户端、服务器、代理之间流动。使用术语“流入”(inbound)、“流出”(outBound)来描述事务处理的方向。报文总是向下游(downstream)流动,所有报文的发送者都在接收者的上游(upstream)

2. 报文的组成部分

HTTP报文分为请求报文(request message)和响应报文(response message);报文由起始行、首部、主体组成。起始行和首部是由行分隔的ASCII文本,主体是可选的数据块,可以包含文本或二进制数据

2.1 start line(起始行)

请求报文的start line:<method> <request-url> <version>

响应报文的start line:<version> <status-code> <reason-phrase>

请求报文的起始行说明了要做什么,响应报文的起始行说明发生了什么。reason-phrase(原因短语)仅对人类有意义,即使响应行为 HTTP/1.0  200 NOT OK,同样会被当做成功指示处理。

2.1.1 方法

1)GET

2)HEAD:与GET方法的行为很类似,但服务器只返回首部,不返回实体的主体部分,这就允许客户端在不获取资源的情况下,检查、了解资源情况等,比如判断其类型、确认其是否存在。服务器开发者必须保证返回的首部与GET请求返回的首部完全相同。

3)POST

4)PUT让服务器用请求的主体部分来创建一个文档,此文档以请求的URL命名,如果此URL已存在,则用此主体覆盖;为了安全,很多服务器要求在执行PUT之前用密码登录。POST向服务器发送数据,PUT向服务器的资源中存储数据

2.1.2 状态码

2XX 成功

3XX 重定向

4XX 客户端错误

5XX 服务端错误

2.1.3 版本号

将自己所遵循的协议版本告知对方,以便了解对方的能力,版本号说明了应用程序支持的最高HTTP版本,HTTP/x.y 中x和y都被当做单独的数字处理,所以比较版本高低时,数字应该单独比较,比如 HTTP/2.22 就比 HTTP/2.3 版本高,因为22 > 3

2.2 header 

通用首部:在请求和响应报文中都可以出现

请求首部:补充更多请求相关的信息

响应首部:补充更多响应相关的信息

实体首部:描述实体的长度、内容、或资源本身

扩展首部:规范中没有定义的新首部

2.3 body

相关文章

  • HTTP协议笔记

    收集些HTTP协议资料, 做下笔记 HTTP权威指南读书笔记 http://www.cnblogs.com/qcs...

  • HTTP笔记

    如果你的代码是主要处理数据库和数据之间的逻辑 那么你就算是个后端如果你的代码主要处理交互(用户的点击事件 鼠标事件...

  • HTTP笔记

    网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上通讯时只能识别诸如“ 208...

  • HTTP笔记

    通信传输流 HTTP报文 HTTP报文:用于HTTP协议交互的信息。请求端的HTTP报文叫做请求报文,相应端的叫做...

  • HTTP笔记

    HTTP协议(超文本传输协议) 简介 1.http协议是用于web服务器传输超文本到浏览器的传输协议2.http协...

  • HTTP笔记

    HTTP是无状态有会话的,会话是有状态的。如购物车的实现是因为有cookie的存在。 HTTP基于TCP协议,连接...

  • HTTP 笔记

    一 . HTTP 简介 超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTT...

  • HTTP笔记

    “你知道当我们在网页浏览器(Web browser)的地址栏中输入 URL 时,Web 页面是如何呈现的吗?” H...

  • http笔记

    1.MIME MIME (多用途互联网邮件扩展类型)是描述消息内容类型的因特网标准。 MIME 消息能包含文本、图...

  • HTTP 笔记

    http 协议应用在应用层 应用层为应用乳尖提供了很多服务 http 发展历史第一个版本 Http/0.9 版本 ...

网友评论

      本文标题:HTTP笔记

      本文链接:https://www.haomeiwen.com/subject/scgptrtx.html