深入理解HTTP协议

1.基础概念

  HTTP代表超文本传输协议,它运行在TCP/IP之上,是一个应用层协议,由请求和响应构成,是一个标准客户端服务器模型。HTTP是一个无状态的协议,即同一个客户端的这次请求和上次请求是没有对应关系的。默认HTTP的端口号为80。

2.工作流程

  HTTP协议永远都是客户端发起请求,服务器回送响应。因此,HTTP无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。

  一次HTTP操作可以分为四步:

  1)首先,客户机与服务器建立连接。只要单击某个超链接,HTTP的工作就开始了;

  2)建立连接后,客户机发送一个请求给服务器。请求的格式为:统一资源表示服、协议版本号、MIME信息、客户机信息等,详见“报文剖析”部分;

  3)服务器接收到请求后,基于相应的响应信息。响应的格式为:响应的状态行、MIME信息及试题信息等;

  4)客户端接收服务器所返回的信息,通过浏览器显示给用户,然后客户机与服务器连接断开;

3.报文剖析

  3.1 HTTP GET请求剖析

  3.2 HTTP POST请求剖析

  3.3 HTTP响应剖析

4.GET和POST方法的区别

  GET中的总字符数是有限的(取决于服务器)。比如,用户在“搜索”输入框里输入了很长一段文字,GET方法可能无法正常工作。用GET发送的数据会追加到URL的后面,在浏览器地址栏中显示出来。

  POST请求将表单数据包括在请求的体中,如果使用POST而不是GET,用户就不能对一个表单提交建立书签。

5.什么是MIME

  MIME为HTTP响应报文中content-type首部的值,它告诉浏览器要接收的数据是什么类型,这样浏览器才能知道如何显示这些数据。MIME类型值与HTTP请求Accept首部所列的值相关。

6.HTTP/1.0和HTTP/1.1的比较

  1)HTTP/1.0协议使用非持久连接,HTTP/1.1使用持久连接,在持久连接下,不必为每个web对象的传送简历一个新的连接,一个连接中可以传输多个对象。例如一个包含有许多图像的网页文件中并没有包含真正的图片数据,而是指向这些图像的URL地址,在HTTP/1.1协议下,使用一次连接就可以完成网页文件的多个请求和应答。

  2)HTTP/1.1允许客户端不用等待上一次请求结果返回,就可以发出下一次请求,但服务器端必须按照接收到的客户端的请求的先后顺序依次回送响应结果,以保证客户端能够区分出每次请求的响应内容,这样也显著减少了整个下载过程所需要的时间。

  3)HTTP/1.1增加了更多的请求头和响应头来改进和扩充HTTP/1.0。例如,Host请求字段允许web浏览器使用主机名来访问服务器上同一个IP地址和端口号上配置的多个虚拟web站点。HTTP/1.1的持续连接,也是使用Connection请求头来完成的。如果Connection的值为Keep-Alive,客户端通知服务器返回本次请求结果后保持连接,Connection的值为Close时,客户端通知服务器返回本次请求结果后关闭连接。

  4)增加了状态响应码。例如用来试探server是否接受request body的状态响应码100(Continue)。

  5)HTTP/1.1增加了OPTIONS,PUT,DELETE,TRACE,CONNECT这些request方法。

时间: 2024-10-10 15:46:19

深入理解HTTP协议的相关文章

【报文】理解HTTP协议的Request/Response(请求响应)模型

[报文]理解HTTP协议的Request/Response(请求响应)模型 系列目录 [简介]"请求/响应"模型 http://www.cnblogs.com/engraver-lxw/p/7550514.html [原理]理解HTTP协议的Request/Response(请求响应)模型 http://www.cnblogs.com/engraver-lxw/p/7550691.html [报文]理解HTTP协议的Request/Response(请求响应)模型--当前 http:/

深入理解HTTP协议、HTTP协议原理分析

深入理解HTTP协议.HTTP协议原理分析 目录(?)[+] http协议学习系列 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本.其中最著名的就是RFC 26

深入理解HTTP协议(转)原出处已不明

http协议学习系列---我从这里转来的http://www.blogjava.net/zjusuyong/articles/304788.html 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC

转载和积累系列 - 深入理解HTTP协议

深入理解HTTP协议 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了HTTP/1.0版本.其中最著名的就是RFC 2616.RFC 2616定义了今天普遍使用的一个版本——HTTP

在实践中深入理解IP协议

0.说明 TCP/IP协议栈其实当然不止有TCP和IP两个协议,但以这两个协议作为这个协议栈的统称,足以体现出其在TCP/IP协议栈中的重要性,下面就来结合搭建的网络环境,通过一些手段来深入理解IP协议中各字段的具体含义,相信这会比纯看理论的书籍要容易理解得多. 本次使用的环境如下: 操作系统:Ubuntu 15.10 网络设备模拟器:GNS3 抓包软件:Wireshark 1.网络环境搭建 对于IP协议的分析,并不需要太复杂的网络环境,我们只需要建立下面一个拥有两个节点的网络环境即可:

爬虫入门系列(一):快速理解HTTP协议

4月份给自己挖一个爬虫系列的坑,主要涉及HTTP 协议.正则表达式.爬虫框架 Scrapy.消息队列.数据库等内容. 爬虫的基本原理是模拟浏览器进行 HTTP 请求,理解 HTTP 协议是写爬虫的必备基础,招聘网站的爬虫岗位也赫然写着熟练掌握HTTP协议规范,写爬虫还不得不先从HTTP协议开始讲起 HTTP协议是什么? 你浏览的每一个网页都是基于 HTTP 协议呈现的,HTTP 协议是互联网应用中,客户端(浏览器)与服务器之间进行数据通信的一种协议.协议中规定了客户端应该按照什么格式给服务器发送

(转存 作者未知)深入理解HTML协议

深入理解HTML协议 http协议学 习系列 1. 基础概念篇 1.1 介绍 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系 列的RFC,RFC 1945定义了HTTP/1.0版本.其中最著名的就是RFC 2616.RFC 2616定义了今天普遍

Webserver-HTTP项目(深入理解HTTP协议)

# HTTP项目实战- 深入理解HTTP协议- 模拟后台服务程序基本流程和大致框架- 每一个步骤一个文件夹- 图解http协议, 图解tcp/ip协议 # v01-验证技术- 验证socket-tcp技术,看能否走通流程- 使用浏览器发送消息,访问地址 # V02-解析传入http协议- 根据http协议格式,逐行读取信息- 按行读取后的信息,需要进行拆解, # 推荐书籍- 日本人写的 "图解Http" - 图解系列严重推荐 # v03-http协议封装返回内容- 返回头: "

[搜狐科技]由浅入深理解Raft协议

由浅入深理解Raft协议 2017-10-16 12:12操作系统/设计 0 - Raft协议和Paxos的因缘 读过Raft论文<In Search of an Understandable Consensus Algorithm>的同学都知道,Raft是因为Paxos而产生的.Paxos协议是出了名的难懂,而且不够详细,紧紧依据Paxos这篇论文开发出可用的系统是非常困难的.Raft的作者也说是被Paxos苦虐了无数个回合后,才设计出了Raft协议.作者的目标是设计一个足够详细并且简单易懂

深入理解通讯协议

网络模型 OSI模型(开放式系统互联),它是由国际标准化组织(ISO)提出的. TCP/IP系列协议 TCP/IP(Transmission Control Protocol/Internet Protocol)不只是TCP/IP两个协议,而是有很多个协议组成,并且是在不同的层,是互联网的基础通信架构. 一个http请求浏览:应用层HTTP -> 传输层TCP -> 网络层IP(数据包). ICMP(确保源地址和目的地址之间是网络通).IGMP(本地路由器和英特网的路由器联通) ->链路