何为HTTP(超文本传输协议)?

协议,即约定俗成的规范。HTTP则是浏览器与服务器之间交流的一种规范。HTTP基于TCP/IP协议,属于应用层的协议。

为什么Web应用不使用TCP或者UDP协议呢?

TCP基于连接和三次握手,像C/S架构的网站,最多上千个Client同时连接,而B/S架构的网站,十万人同时在线是很平常的,如果十万个客户端同时与服务器保持连接,服务器会承载不了。UDP则是一种不可靠且不安全的协议,无法满足Web应用的要求。

于是衍生出HTTP协议。HTTP请求结束后,服务器立即关闭连接,释放资源。

HTTP工作流程及原理

1.由客户端向服务器发起一个HTTP请求,请求建立一个到服务器指定端口(默认80)的TCP连接。

2.服务器在指定端口(默认80)接收到客户端发来的HTTP请求。

3.服务器向客户端发回一个状态行(比如"HTTP/1.1 200 OK"),和响应的消息。

4.客户端接收到服务器返回的信息,并把内容显示在屏幕上,然后与服务器断开连接。

HTTP请求详解

一个HTTP请求代表客户端(浏览器)向服务端发送数据的过程。一个完整的HTTP请求内容分为三个部分:请求行、请求头、请求正文。

1.请求行:

格式 - “请求方法 URI HTTP协议版本号”

例如 - GET /helloworld/user.html HTTP/1.1

2.请求头:

内容 - 包含客户端请求的服务器主机名,以及客户端的环境信息等。

部分头属性解释 -

Accept:用于告诉服务器,客户端支持的数据类型  (例如:Accept:text/html,image/*)
Accept-Charset:用于告诉服务器,客户端采用的编码格式
Accept-Encoding:用于告诉服务器,客户端支持的数据压缩格式
Accept-Language:客户端语言环境
Host:客户端通过这个服务器,想访问的主机名
If-Modified-Since:客户端通过这个头告诉服务器,资源的缓存时间
Referer:客户端通过这个头告诉服务器,它(客户端)是从哪个资源来访问服务器的(防盗链)
User-Agent:客户端通过这个头告诉服务器,客户机的软件环境(操作系统,浏览器版本等)
Cookie:客户端通过这个头,将Cookie信息带给服务器
Connection:告诉服务器,请求完成后,是否保持连接
Date:告诉服务器,当前请求的时间

3.请求体

即实体内容,是指浏览器端通过http协议发送给服务器的实体数据。例如:name=dylan&id=110
(GET请求时,通过url传给服务器的值。POST请求时,通过表单发送给服务器的值)

HTTP协议详解(一)——初识HTTP及请求的更多相关文章

  1. WebSocket协议详解及应用

    WebSocket协议详解及应用(七)-WebSocket协议关闭帧 本篇介绍WebSocket协议的关闭帧,包括客户端及服务器如何发送并处理关闭帧.关闭帧错误码及错误处理方法.本篇内容主要翻译自RF ...

  2. HTTP协议详解(转)

    转自:http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx Author :Jeffrey 引言 HTTP是一个属于应用层的面向对象的 ...

  3. HTTP协议详解

    Author :Jeffrey 引言 HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展. ...

  4. 动态选路、RIP协议&&OSPF协议详解

    动态选路.RIP协议&&OSPF协议详解 概念 当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路.路由器之间必须采用选路协议进行通信,这样的选路协议 ...

  5. ASP.NET知识总结(3.HTTP协议详解)

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  6. 接口测试之HTTP协议详解

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

  7. 计算机网络(12)-----HTTP协议详解

    HTTP协议详解 http请求 http请求由三部分组成,分别是:请求行.消息报头.请求正文 (1)请求行 请求行以一个方法符号开头,以空格分开,后面跟着请求的URI和协议的版本,格式如下:Metho ...

  8. OSPF协议详解

    CCNP OSPF协议详解 2010-02-24 20:30:22 标签:CCNP 职场 OSPF 休闲 OSPF(Open Shortest Path Fitst,ospf)开放最短路径优先协议,是 ...

  9. HTTP协议详解(真的很经典)

    HTTP 是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和 扩展.目前在WWW中使用的是HTTP/1.0 ...

  10. HTTP协议详解--转载http://blog.csdn.net/gueter/article/details/1524447

    引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1. ...

随机推荐

  1. (二)spring 高级装配-Condition -条件化的bean

    Condition:满足某个特定条件的情况下创建bean 条件化配置bean: a:@Conditional 指定一个class ,它指明了通过条件对比的类.如果没有指定class则通过Condito ...

  2. 45道CSS基础面试题(附答案)

    1 .介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin低版本IE盒子模型:宽 ...

  3. 用git提交新项目到github

    1.(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2.把文件添加到版本库中,使用命令 git add .添加到暂存区里面去,不要忘记后面的小数点 ...

  4. linux初学者小记

    a开头的小命令 alias命令 # echo=' - - - ' > /sys/class/scsi_host/host0/scan这条命令是咱们在给虚拟机装了一块新的硬盘后,在不关机的前提下扫 ...

  5. 整理总结 python 中时间日期类数据处理与类型转换(含 pandas)

    我自学 python 编程并付诸实战,迄今三个月. pandas可能是我最高频使用的库,基于它的易学.实用,我也非常建议朋友们去尝试它.--尤其当你本身不是程序员,但多少跟表格或数据打点交道时,pan ...

  6. ubuntu linux重置密码

    (和网上的有点不一样,记录一下) 1)重启系统,同时长时间按住shift键进入grub菜单:GNU GRUB version 1.99-12ubuntu5(如图一) 2)选择Ubuntu, with ...

  7. (6)autotools工具的使用

       autotools是专门用来生成Makefile的一系列工具,包括autoscan.aclocal.autoheader.autoconf.automake等.     (1)autotools ...

  8. Spring 梳理 - @Component

    使用@Component注解,表示该类定义为Spring管理Bean,使用默认value(可选)属性表示Bean标识符.如果不指定标识符,默认为首字母小写类名.例如类UserController的标识 ...

  9. poj-2232 New Stone-Forfex-Cloth Game 思维题

    Acm is a clever boy, and he developed a new game form the old Stone-Forfex-Cloth game. In this game, ...

  10. Flask基础(15)-->模板代码的复用【宏(Macro)、继承(Block)、包含(include)】

    宏 对宏(macro)的理解: 把它看作 Jinja2 中的一个函数,它会返回一个模板或者 HTML 字符串 为了避免反复地编写同样的模板代码,出现代码冗余,可以把他们写成函数以进行重用 需要在多处重 ...