一:了解Web.

  首先,Web应用的产生起源于1989年,当时CERN(欧洲核子研究组织)的蒂姆·伯纳斯-李(Time BernersLee)博士提出了一种能让远隔两地的研究者们共享知识的设想。借助多文档之间相互关联形成的超文本,连成可相互参阅的WWW(World Wide Web 万维网)。

  大致上,Web应用包含了三项最根本的技术,使用HTML等标记语言构建Web资源;使用HTTP作为资源的远程传递协议;使用URI(同一资源标识符)作资源的地址。这三项技术共同构成了WWW。一个典型的Web应用场景就是在浏览器中输入要访问的资源的远程地址(URI),通过HTTP远程通信,最终得到要访问的资源(页面)。所谓"上网",就是与互联网上一系列的"资源"互动,调用它的URI。

二:了解HTTP.

  在了解HTTP协议之前,必须明白客户端和服务器。HTTP就是用于客户端和服务器的通信协议。

  请求访问资源的一端为客户端,而提供资源响应的一端则成为服务端。

一般,我们的浏览器就是一个客户端,服务器则是我们所要访问的远程资源的存放位置。就一条通信路线来说,服务器和客户端的角色是确定的,使用HTTP协议能够明确区分哪端是客户端,哪端是服务器端。

HTTP协议规定,请求(Request)必须从客户端发出,最后服务器端响应(Response)请求并返回。

三:认识Request和Response.

  报文:用于HTTP协议交互的信息被称为HTTP报文。它包含了对要访问资源进行的操作的信息。请求端的HTTP报文叫做请求报文,响应端(服务器端)的叫做响应报文。HTTP报文本身是由多行数据构成的字符串文本。

  我们可以将HTTP报文分为两部分,报文首部和报文主体.它们之间通过空行来划分.报文首部又是由起始行和可选的首部字段组成。

  我们来看一个具体的HTTP通信。

下面是从客户端发给某个HTTP服务器端的请求报文中的内容。

GET /log-in.html HTTP/1.1
Host:hachr.jp
Connection:Keep-alive
Content-Type:application/x-www-form-urlencoded name=chenyanlong&age=20

 参照上面这个的HTTP请求报文,( 这是一个典型的表单提交请求 ),可以看到,请求报文的起始行由请求方法,请求URI,协议版本构成。

 下面是服务器接收到请求后进行处理并返回的响应报文。

HTTP/1.1 200 OK
Date:Tue 19 Apr 2016 15:09:00 GMT+0800
Content-Length:362
Content-Type:text/html <html>
......

  响应报文的起始行不同于请求,开头的HTTP/1.1表示服务器对应的HTTP版本。紧挨着的200 OK表示请求的处理结果的状态码( status code ) 和 原因短语( reason-phrase )

总结

  本篇文章主要介绍了Web的发展和认识了HTTP的大致组成.其实,了解HTTP最好的办法是在实践中学习,尤其是对于众多首部字段的学习。所以,随后会从具体的应用场景出发来重点介绍首部字段。

认识Web和HTTP的更多相关文章

  1. C# Web应用调试开启外部访问

    在用C#开发Web应用时有个痛点,就是本机用VS开启Web应用调试时外部机器无法访问此Web应用.这里将会介绍如何通过设置允许局域网和外网机器访问本机的Web应用. 目录 1. 设置内网访问 2. 设 ...

  2. 网页提交中文到WEB容器的经历了些什么过程....

    先准备一个网页 <html><meta http-equiv="Content-Type" content="text/html; charset=gb ...

  3. 闲来无聊,研究一下Web服务器 的源程序

    web服务器是如何工作的 1989年的夏天,蒂姆.博纳斯-李开发了世界上第一个web服务器和web客户机.这个浏览器程序是一个简单的电话号码查询软件.最初的web服务器程序就是一个利用浏览器和web服 ...

  4. java: web应用中不经意的内存泄露

    前面有一篇讲解如何在spring mvc web应用中一启动就执行某些逻辑,今天无意发现如果使用不当,很容易引起内存泄露,测试代码如下: 1.定义一个类App package com.cnblogs. ...

  5. 对抗密码破解 —— Web 前端慢 Hash

    (更新:https://www.cnblogs.com/index-html/p/frontend_kdf.html ) 0x00 前言 天下武功,唯快不破.但在密码学中则不同.算法越快,越容易破. ...

  6. 使用 Nodejs 搭建简单的Web服务器

    使用Nodejs搭建Web服务器是学习Node.js比较全面的入门教程,因为要完成一个简单的Web服务器,你需要学习Nodejs中几个比较重要的模块,比如:http协议模块.文件系统.url解析模块. ...

  7. 一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)

    Web.config的读取 对于Web.config的读取大家都很属性了.平时我们用得比较多的就是appSettings节点下配置.如: 我们对应的代码是: = ConfigurationManage ...

  8. Web性能优化:What? Why? How?

    为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...

  9. Web性能优化:图片优化

    程序员都是懒孩子,想直接看自动优化的点:传送门 我自己的Blog:http://cabbit.me/web-image-optimization/ HTTP Archieve有个统计,图片内容已经占到 ...

  10. 使用ServiceStack构建Web服务

    提到构建WebService服务,大家肯定第一个想到的是使用WCF,因为简单快捷嘛.首先要说明的是,本人对WCF不太了解,但是想快速建立一个WebService,于是看到了MSDN上的这一篇文章 Bu ...

随机推荐

  1. cas 单点登录配置

    服务端配置 cas是个好东西,很灵活很好用,但是配置起来很麻烦 cas官方网站 http://downloads.jasig.org/ 下载服务端 CAS Server 3.3.3 Final 1.将 ...

  2. C++程序在debug模式下遇到Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call问题。

    今天遇到一个Access Violation的crash,只看crash call stack没有找到更多的线索,于是在debug模式下又跑了一遍,遇到了如下的一个debug的错误提示框: 这个是什么 ...

  3. Linux内核之mmc子系统-sdio

    现在的Linux内核中,mmc不仅是一个驱动,而是一个子系统.这里通过分析Linux3.2.0内核,结合TI的arm335x平台及omap_hsmmcd host分析下mmc子系统,重点关注sdio及 ...

  4. Linux入门基础 #5:Linux文件系统挂载管理

    本文出自   http://blog.csdn.net/shuangde800 ------------------------------------------------------------ ...

  5. [Redux] Navigating with React Router <Link>

    We will learn how to change the address bar using a component from React Router. In Root.js: We need ...

  6. [Javascript] Creating an Immutable Object Graph with Immutable.js Map()

    Learn how to create an Immutable.Map() through plain Javascript object construction and also via arr ...

  7. 全面分析 Spring 的编程式事务管理及声明式事务管理--转

    开始之前 关于本教程 本教程将深入讲解 Spring 简单而强大的事务管理功能,包括编程式事务和声明式事务.通过对本教程的学习,您将能够理解 Spring 事务管理的本质,并灵活运用之. 先决条件 本 ...

  8. Java基础知识强化之集合框架笔记21:数据结构之 数组 和 链表

    1. 数组 2. 链表

  9. HTML5之填写个人信息

  10. rabbitmq pika connection closed

    You are here: Home / rabbitmq pika connection closed rabbitmq pika connection closed By lijiejie on  ...