HTTP简介

详细URL: 

http://www.cnblogs.com/ranyonsue/p/5984001.html

主要特点

1、简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

2、灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

3.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

4.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
5、支持B/S及C/S模式。

HTTP工作原理

HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。

以下是 HTTP 请求/响应的步骤:

1、客户端连接到Web服务器

一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.oakcms.cn。

2、发送HTTP请求

通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。

3、服务器接受请求并返回HTTP响应

Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。

4、释放连接TCP连接

若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;

5、客户端浏览器解析HTML内容

客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。

例如:在浏览器地址栏键入URL,按下回车之后会经历以下流程:

1、浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址;

2、解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接;

3、浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器;

4、服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器;

5、释放 TCP连接;

6、浏览器将该 html 文本并显示内容; 

转载于:https://www.cnblogs.com/snow-man/p/9929865.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/365010.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Window上使用Jenkins自动部署和上传快照Java工件

这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 Spring环境中开发的学生申请应用程序)的部署过程-生成项目,运行单元测试,上传构建的工件到…

10个在线Web设计开发工具介绍

1. 在线文本生成器 BlindTextGenerator:对设计师来说,这是一个简单又好用的文本生成小工具。内含许多种字体,可设置字符的大小,数量,样式,段落的数量及对齐方式等,还可以很方便且精确地调节文本…

获取clientheight为0_用10行python代码获取全国城市交通生活圈

今天在网上冲浪看到一个很花哨的数据,全国各城市主要商圈从早上6点到晚上10点的20min,30min,45min,60min,90min生活圈轮廓。1 获取思路按下F12按下F12,点击淮海路可以看到出现一个网站,他就是我们要找的接口接口内容是通过get请求…

promise将ajax变为同步,ES6-Promise改造异步请求为同步

1.扩展:ajax1.1 代码如下$.ajax({url:地址,type:get/post,data:{},dataType:json/jsonp,success:function(res){//请求成功,接收返回值}})1.2 概念ajax不能跨域请求两个网址:协议 主域号 端口号 完全相同时,这时两个网址完全相同&…

PostgreSQL分页

转自 https://blog.csdn.net/tomcat_2014/article/details/49947711 如果用过mysql,那么对 select * from xxx limit x,y;这样的语法会很熟悉。 不过pg是不支持这样的语法的,但支持 select * from xxx limit pagesize offset offsetNum ; 一般情况下: pa…

12个便于web设计及开发的在线工具

请不要低估这些小工具,他们极其的方便并且能节省很多的时间和工作,下面就是这些在线工具的列表,挑几款来试试吧。 我还是比较喜欢Ajax Load和Web 20 Badges Generator的,你们呢? Favico 一个图标制作工具&#xff0c…

服务器改家用系统吗,服务器主机改家用

服务器主机改家用 内容精选换一换本节操作介绍购买云耀云服务器的操作步骤。购买时,为减少您配置参数的时间,部分参数由系统自动分配,以下参数配置供你了解系统的默认配置。购买云耀云服务器仅支持“包年/包月”的计费方式,请您在…

指定module_一个缺失已久的特性 — module模块

在ES6之前,Javascript还不支持原生的模块化。如果要实现模块化,我们要借助一些框架,比如:requireJS或者seaJS等;什么?没用过也没听过这些框架?没关系,它们不是我们今天要讲的重点。今…

使用HTML5,画布和开放数据创建全球降水(雨)可视化

我目前正在为Three.js编写下一本书,其中一章涉及可视化开放数据。 在寻找可以使用的数据时,我遇到了来自NOAA的一组数据。 通过此站点,您可以以网格格式下载一组全世界的每月降水报告。 因此,我下载了它们,然后开始处理…

CRF两个例子的理解

概率计算例子: 预测例子: 转载于:https://www.cnblogs.com/callyblog/p/9933993.html

【转】前端开发值得一看的文章

其实这篇文章不是这里的,只是,后台很傻B地进不了了。也不知道是什么乱七八糟的问题。先写在这里,当做这么久没更新的偷懒好了。(而且,挑出来的这些都是精华呢!),大家各取所需吧: 1. …

Spring boot Mybatis 整合(注解版)

之前写过一篇关于springboot 与 mybatis整合的博文,使用了一段时间spring-data-jpa,发现那种方式真的是太爽了,mybatis的xml的映射配置总觉得有点麻烦。接口定义和映射离散在不同的文件中,阅读起来不是很方便。于是,准…

使用Spring Data REST将Spring Data JPA存储库导出为REST服务

Spring Data模块提供了各种模块,以统一的方式处理各种类型的数据源,如RDBMS,NOSQL存储等。 在我以前的文章SpringMVC4 Spring Data JPA 使用JavaConfig的SpringSecurity配置中,我已经解释了如何使用JavaConfig配置Spring Data JP…

如何在ftp服务器下查找文件夹,查找ftp服务器下的文件夹名

查找ftp服务器下的文件夹名 内容精选换一换Linux x86-64(64位)服务器,常见的有EulerOS、Ubuntu、Debian、CentOS、OpenSUSE等。Windows 7及以上版本。请参见JRE地址下载JRE。Linux服务器安装请参考如下步骤:使用root用户,进入/opt目录。cd /o…

Spring入门篇——第6章 Spring AOP的API介绍

第6章 Spring AOP的API介绍 主要介绍Spring AOP中常用的API。6-1 Spring AOP API的Pointcut、advice概念及应用 映射方法是sa开头的所有方法 如果当前是被锁住,并且方法的名称中包含set,那也就是说我们不希望执行set方法去改变物体本身的属性&#xff0…

微信机器人开发SDK使用教程--养号任务停止

微信机器人开发SDK使用教程--养号任务停止 case "PostStopWeChatMaintenanceTask": {// 养号任务停止 log.debug("websocket:msgtypePostStopWeChatMaintenanceTask。。。。。"); postStopWeChatMaintenanceTaskWebsocketHandler.handleMsg(ctx, vo, conte…

图的长宽_华为P50 Pro渲染图曝光:单挖孔屏+超高屏占比

去年下半年,华为发布 Mate 40 旗舰系列,由于麒麟芯片的供应限制以及受到消费者的热捧,Mate 40 系列部分型号至今仍一机难求;此前,有数条爆料曝光了华为新旗舰 P50 系列手机的相关信息,该系列有望在今年上半…

你从未见过的 HTML5 动画效果

HTML5 的 Canvas 对象将改变 JavaScript 的使命,使之成为 HTML5 下强大的动画脚本编写工具。本文介绍了 8 个你从未见过的,基于 HTML5 Canvas 和 JavaScript 的动画,这些令人难以置信的效果将使你对 HTML5 彻底折服。需要指出的是&#xff0c…

使用Java EE的ManagedExecutorService异步执行事务

自Java EE 7规范发布以来已经过去了一年。 现在,Wildfly 8 Final已发布,现在是时候仔细看看这些新功能了。 自从Java EE时代开始以来就缺少的一件事是能够使用成熟的Java EE线程。 Java EE 6已经为我们带来了Asynchronous批注,通过它我们可以…

离线存储网页服务器无响应,网页保存应注意的问题

您可能感兴趣的话题:IE核心提示:从IE5.0开始,我们浏览网页的时候,能够选择“另存网页”,然后断线脱机浏览,大大节省了在线的网络费用。从IE5.0开始,我们浏览网页的时候,能够选择“另…