资讯专栏INFORMATION COLUMN

Web开发中,HTTP概念讲解!

Jinkey / 2355人阅读

摘要:在这个例子中指的是协议的安全版本,被称为,或者。因此,依赖于面向连接的进行消息传递,但连接并不是必须的。开放同源限制为了防止网络窥听和其它隐私泄漏,浏览器强制对网站做了分割限制。,与请求头部类似。

什么是HTTP?

HTTP (超文本传输协议) 是用来在 Web 上传输文件的基础 协议 ,最典型的是在浏览器和服务器之间传递以至于上网人员可以浏览他们。

作为URI的一部分,“http://”被称为模式,通常位于地址的开头,例如“https://developer.mozilla.org”,就是指示浏览器利用HTTP协议请求文档。https在这个例子中指的是HTTP协议的安全版本,被称为SSL,或者TLS。

HTTP 是基于文本 (所有的通信都是以纯文本的形式进行) 以及无状态的 (当前通信不会发现以前的通信状态)。这个特点对在www上访问网页的人是很理想的。而且,HTTP也可以让网站更加的灵活多变,利用在AJAX上等。

一、基于HTTP的组件系统

在一个浏览器和处理请求的服务器之间,由于Web的层次设计,那些在网络层和传输层的细节都被隐藏起来了。HTTP位于最上层的应用层。虽然底层对于分析网络问题非常重要,但是大多都跟对HTTP的描述不相干。

user-agent: 就是任何能够为用户发起行为的工具。

Web服务端:Web Server来服务并提供客户端所请求的文档

代理(Proxies):在浏览器和服务器之间,有许多计算机和其他设备转发了HTTP消息。由于Web栈层次结构的原因,它们大多都出现在传输层、网络层和物理层上,对于HTTP应用层而言就是透明的,虽然它们可能会对应用层性能有重要影响。还有一部分是表现在应用层上的,被称为代理

1、缓存(可以是公开的也可以是私有的,像浏览器的缓存)
2、过滤(像反病毒扫描,家长控制...)
3、负载均衡(让多个服务器服务不同的请求)
4、认证(对不同资源进行权限管理)
5、日志记录(允许存储历史信息)
二、HTTP 的基本性质

HTTP是无状态的,使用Cookies可以创建有状态的会话。

 把Cookies添加到头部中,创建一个会话让每次请求都能共享相同的上下文信息,达成相同的状态,将两个请求相关联,如购物车实现两个商品添加! 

HTTP 和连接

 两个最常用的传输层协议:TCP是可靠的,而UDP不是。因此,HTTP依赖于面向连接的TCP进行消息传递,但连接并不是必须的。为了更好的适合HTTP,设计一种更好传输协议的进程一直在进行。Google就研发了一种以UDP为基础,能提供更可靠更高效的传输协议

三、HTTP 能控制什么

以下是可以被HTTP控制的常见特性:

缓存:文档如何缓存能通过HTTP来控制。

开放同源限制:

为了防止网络窥听和其它隐私泄漏,浏览器强制对Web网站做了分割限制。只有来自于相同来源的网页才能够获取网站的全部信息。这样的限制有时反而成了负担,HTTP可以通过修改头部来开放这样的限制,因此Web文档可以是由不同域下的信息拼接成的(某些情况下,这样做还有安全因素考虑)

认证:

一些页面能够被保护起来,仅让特定的用户进行访问。基本的认证功能可以直接通过HTTP提供,使用Authenticate相似的头部即可,或用HTTP Cookies来设置指定的会话。

代理和隧道:

通常情况下,服务器和/或客户端是处于内网的,对外网隐藏真实 IP 地址。因此 HTTP 请求就要通过代理越过这个网络屏障。但并非所有的代理都是 HTTP 代理。例如,SOCKS协议的代理就运作在更底层,一些像 FTP 这样的协议也能够被它们处理。    

会话:使用HTTP Cookies允许你用一个服务端的状态发起请求,这就创建了会话。

四、HTTP 流

当客户端想要和服务端进行信息交互时(服务端是指最终服务器,或者是一个中间代理),过程表现为下面几步:

打开一个TCP连接

发送一个HTTP报文

读取服务端返回的报文信息

读取服务端返回的报文信息

五、HTTP 报文

有两种HTTP报文的类型,请求与响应,每种都有其特定的格式。
1、请求


请求由以下元素组成:

一个HTTP的method,经常是由一个动词像GET, POST 或者一个名词像OPTIONS,HEAD来定义客户端的动作行为。通常客户端的操作都是获取资源(GET方法)或者发送HTML form表单值(POST方法),虽然在一些情况下也会有其他操作。

要获取的资源的路径,通常是上下文中就很明显的元素资源的URL,它没有protocol (http://),domain(developer.mozilla.org),或是TCP的port(HTTP一般在80端口)。

HTTP协议版本号。

为服务端表达其他信息的可选头部headers。

对于一些像POST这样的方法,报文的body就包含了发送的资源,这与响应报文的body类似。

2、响应


响应报文包含了下面的元素:

HTTP协议版本号。

一个状态码(status code),来告知对应请求执行成功或失败,以及失败的原因。

一个状态信息,这个信息是非权威的状态码描述信息,可以由服务端自行设定。

HTTP headers,与请求头部类似。

可选项,比起请求报文,响应报文中更常见地包含获取的资源body。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/103123.html

相关文章

  • 参加第二届前端开发者年度大会总结

    摘要:代表公司去参加今年的第二届前端开发者年度大会,散会的时候,技术老大问我,今天感觉怎么样,有什么收获,当时就零零碎碎的回答了一些,不算完美趁着还记得点什么,在这里做个自我回顾总结,谨代表个人见解,有不当之处,或若涉及图片隐私或者其它问题,烦请 代表公司去参加今年的 第二届前端开发者年度大会,散会的时候,Team 技术老大问我,今天感觉怎么样,有什么收获,当时就零零碎碎的回答了一些,不算完...

    solocoder 评论0 收藏0
  • JS笔记

    摘要:从最开始的到封装后的都在试图解决异步编程过程中的问题。为了让编程更美好,我们就需要引入来降低异步编程的复杂性。异步编程入门的全称是前端经典面试题从输入到页面加载发生了什么这是一篇开发的科普类文章,涉及到优化等多个方面。 TypeScript 入门教程 从 JavaScript 程序员的角度总结思考,循序渐进的理解 TypeScript。 网络基础知识之 HTTP 协议 详细介绍 HTT...

    rottengeek 评论0 收藏0
  • [直播视频] 《Java 微服务实践 - Spring Boot 系列》限时折扣

    摘要:作为微服务的基础设施之一,背靠强大的生态社区,支撑技术体系。微服务实践为系列讲座,专题直播节,时长高达小时,包括目前最流行技术,深入源码分析,授人以渔的方式,帮助初学者深入浅出地掌握,为高阶从业人员抛砖引玉。 简介 目前业界最流行的微服务架构正在或者已被各种规模的互联网公司广泛接受和认可,业已成为互联网开发人员必备技术。无论是互联网、云计算还是大数据,Java平台已成为全栈的生态体系,...

    Enlightenment 评论0 收藏0

发表评论

0条评论

Jinkey

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<