何为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. 编程必备基础知识|计算机组成原理篇(09):CPU的控制器和运算器

    计算机基础方面的知识,对于一些非科班出身的同学来讲,一直是他们心中的痛,而对于科班出身的同学,很多同学在工作之后,也意识到自身所学知识的不足与欠缺,想回头补补基础知识.关于计算机基础的课程很多,内容繁 ...

  2. WebStorm在Font设置FontSize无效解决方法

    我的WebStorm设置了主题.所以直接在File-Settings-Editor-Font设置了无效.它会提醒你要在主题里面改.主题在哪里呢 找到File-Settings-Editor-Color ...

  3. 10 大 python 库

    TensorFlow Scikit-Learn Numpy Keras PyTorch LightGBM Eli5 SciPy Theano Pandas 简介 python 是最流行和使用最广泛的编 ...

  4. 用 C# 来守护 Python 进程

    背景 目前我主要负责的一个项目是一个 C/S 架构的客户端开发,前端主要是通过 WPF 相关技术来实现,后端是通过 Python 来实现,前后端的数据通信则是通过 MQ 的方式来进行处理.由于 Pyt ...

  5. Android Studio [ListView]

    ListViewActivity.java package com.xdw.a122.listview; import android.app.Activity; import android.os. ...

  6. ubuntu linux重置密码

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

  7. WPF中资源的引用方法

    一.引用同一个程序中的资源 1.使用相对Uri来引用资源,如下所示 img.Source=new BitmapImage(new Uri(@"d"\iamges\Backgroun ...

  8. Python学习笔记整理总结【Django】【MVC/MTV/路由分配系统(URL)/视图函数 (views)/表单交互】

     一.Web框架概述  Web框架本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python # -*- coding:utf-8 ...

  9. json入门初体验

    json是JavaScript对象表示法,也是轻量级的文本数据交互格式,独立于语言,能够自我描述 json文本格式在语法上与创建JavaScript对象代码相同,多以json不需要解析器,js程序能够 ...

  10. SpringBootSecurity学习(08)网页版登录整合MyBatis

    创建数据库 前面介绍了springboot-security整合jdbc从数据库中查询用户的方式,适用性有限,下面介绍最常用的整合MyBatis,这种在开发和生产环境中是最常用,也是最实用的.首先需要 ...