HTTP是一个属于应用层面的面向对象的协议,由于其便捷、快速的方式、适用于分布式超媒体信息系统。于1990年提出

HTTP 协议主要特点概括如下

1.支持客户/服务器模式。

2.简单快速

请求方法常用的有  get 、post

3.灵活HTTP允许传输任意类型的数据对象。正在传输的类型由content-type加以标记。

4.无连接模式  请求一次立即断开连接节省传输时间

5.HTTP协议是无状态协议   缺少后续需要处理前面的信息 就必须重新传值  若果不需要处理前面的信息他的应答速度就较快

HTTP 协议详解之URL篇

http是创文本传输协议 是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。

http://host[“:”port ][abs_path]

http表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省值80;

Abs_path指定请求资源的URL;如果URL中没有给出abs_path,必须以’/’的形式给出,通常这个工作浏览器自动帮我们完成。

HTTP协议详解请求篇

http请求由三部分组成,分别是:请求行、消息包头、请求正文

1、请求行以一个方法符号开头,以空格分开,后面跟着请求的URL和协议的版本,格式如下:Method Request-URL HTTP-Version CRLF

其中Method表示请求方法;

Request-URL是一个统一资源标识符

HTTP-Version表示请求的HTTP协议版本

CRLF标示回车换行

请求方法&解释如下

Get          请求获取Request-URL所标识的资源

POST        在Request-URL所标识的资源后附加新的数据

HEAD       请求获取由Request-URL所标识的资源的响应消息报头

PUT         请求服务器存储一个资源,并用Request-URL作为其标识

DELETE      请求服务器删除Request-URL所标识的资源

TRACE       请求服务器回送收到的请求信息,主要用于测试或诊断

CONNECT    保留将来使用

OPTIONS    请求查询服务器性能,或者查询与资源相关的选项和要求

HTTP协议详解之响应篇

HTTP响应由三个部分组成,分别是状态航、消息报头、响应正文

1、HTTP状态码文本叙述

1XX:指示信息--表示请求已接收,继续处理

2XX:成功--表示请求已被成功接收、理解、接受

3XX:重定向--要完成请求必须进行更进一步的操作

4XX:客户端错误--请求有语法错误或请求无法实现

5XX:服务器端错误--服务器未能实现合法的请求

常见的状态码

200  OK               // 客户端请求成功

400  Bad Request      //客户端请求语法有错误,不能被服务器所理解接受

401  Unauthorized     //请求未经授权,这个状态码必须和www-Authenticate报头域一起使用

403  Forbidden        //服务器收到请求,但是拒绝提供服务

404  Not Found       //请求的资源不存在

500  Internal Server Error     //服务器发生意外错误

503  Server Unavailable      //服务器当前不能处理客户端请求  稍后恢复正常

HTTP消息头详解的更多相关文章

  1. JMS学习(二)- JMS Message Model 组成介绍及消息头详解

    一.前言 从本文起依次详细介绍JMS中的一些重要的概念,主要参考了官方的JMS1.1的文档,该文档很老了,是02年的,那年,JAVA还没有被Oracle收购..本文主要介绍Message及其相关概念, ...

  2. ip头、tcp头、udp头详解及定义,结合Wireshark抓包看实际情况

    公司的同事们在分析网页加载慢的问题,忽然使用到了Wireshark工具,我就像发现新大陆一样好奇,赶紧看了看,顺便复习了一下相关协议.上学时学的忘的差不多了,汗颜啊! 报文封装整体结构 mac帧头定义 ...

  3. HTTP请求头和响应头详解【转】

    最近老猿在开始学习爬虫相关的知识,由于老猿以前只做非web的后台应用,发现相关知识太过匮乏,导致学习很困难,为此不得不从一些基础知识恶补开始,对于这些知识,老猿会将网上找到的比较认可的内容直接转发. ...

  4. JAVA对象头详解(含32位虚拟机与64位虚拟机)

    为什么要学习Java对象头 学习Java对象头主要是为了解synchronized底层原理,synchronized锁升级过程,Java并发编程等. JAVA对象头 由于Java面向对象的思想,在JV ...

  5. Android开发——Android的消息机制详解

    )子线程默认是没有Looper的,Handler创建前,必须手动创建,否则会报错.通过Looper.prepare()即可为当前线程创建一个Looper,并通过Looper.loop()来开启消息循环 ...

  6. JMS学习(三)JMS 消息结构之属性及消息体详解

    一.前言 通过上一篇的学习我们知道了消息分为三个部分,即消息头,属性及消息体,并对消息头的十个属性进行了详细的介绍,本文再对消息属性及消息体进行详细的介绍. 二.属性介绍 消息属性的主要作用是可以对头 ...

  7. 流媒体学习三-------SIP消息结构详解

    SIP消息由三部分组成,即:开始行(start line).消息头(header).正文(body)Start-line:请求行Request-line  消息为 request消息时使用reques ...

  8. javaweb(四)——Http协议(请求头,响应头详解)

    一.什么是HTTP协议 HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的 ...

  9. HTTP头详解

    HTTP 头部解释 1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type. 2. Accept-Chars ...

随机推荐

  1. java实现cmd的copy功能

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  2. 写了个小爬虫,为何用上代理ip总是出现错误。

    import urllib.request import re import os import random import threading def url_open(url): #在第8到第12 ...

  3. 四轴飞行器1.2.3 STM32F407时钟配置和升级标准库文件

    原创文章,欢迎转载,转载请注明出处 这个星期进度比较慢哈,只有周末和晚上下班回来才能做,事件不连续,琐碎的事情又比较多,挺烦的,有多琐碎呢?           1.本人有点小强迫症哈,虽然RTT将文 ...

  4. 为什么要for循环以及for循环的流程

    /* Name:为什么需要循环以及for循环流程 Copyright: By.不懂网络 Author: Yangbin Date:2014年2月10日 03:16:55 Description:求1 ...

  5. MySQL 分区表各个分区的行数

    分区的信息是记录在information_schema.partitions 这个表里的.它不能直接定位行所在的分区,但它可查到每个分区中有多少行. 例子: select partition_name ...

  6. CCNA实验(7) -- NAT

    1.静态NAT2.动态NAT3.复用内部全局地址的NAT(PAT) enableconf tno ip do loenable pass ciscoline con 0logg syncexec-t ...

  7. HDU 3507 Print Article(CDQ分治+分治DP)

    [题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=3507 [题目大意] 将长度为n的数列分段,最小化每段和的平方和. [题解] 根据题目很容易得到dp ...

  8. DrawerLayout、CoordinatorLayout、CollapsingToolbarLayout的使用--AndroidSupportDesign练手

    先po一张效果图 PS:原谅题主的懒惰吧.. 看着是不是很酷炫,那是因为5.0的动画做得好,代码其实没有多少,搞清楚这个布局的层次关系很重要. 废话不多说了,先来看布局文件 最外层是一个DrawerL ...

  9. Android Studio配置(build优化和as优化)

    首先是用户目录下的C:\Users\用户名\.gradle\文件下创建gradle.properties文件 输入 org.gradle.daemon=trueorg.gradle.configure ...

  10. [C# 基础知识系列]专题六:泛型基础篇——为什么引入泛型

    引言: 前面专题主要介绍了C#1中的2个核心特性——委托和事件,然而在C# 2.0中又引入一个很重要的特性,它就是泛型,大家在平常的操作中肯定会经常碰到并使用它,如果你对于它的一些相关特性还不是很了解 ...