什么是http:

http是属于应用层(基于tcp的连接方式)的面向对象的协议,是计算机通过网络通信的规则,使得浏览器向web服务器请求信息和服务
http协议特点:
  • http是一种无状态协议(对食物处理没有记忆能力,缺少状态意味着如果后续处理需要前面的信息,他必须重传)
  • 允许任意类型的数据对象,正在传输的类型由Content—Type加以标记
  • 无连接:限制每次连接只处理一个请求,服务器处理完客户的应答后,断开连接。
  • 支持c/s模式
  • 客户向服务器请求服务时,只需传送请求方法和路径
完整的http请求:有7个步骤
1建立tcp连接
2web浏览器向web服务器发送请求命令
3web浏览器发送请求头信息(在chrome下f12查看network中的headers)
4web服务器应答
5web服务器发送应答头信息
6web服务器向浏览器发送数据
7web服务器关闭tcp连接
 
一个http请求的请求行一般由4部分组成:Method Request-URI HTTP-Version CRLF
Method:http请求的方法或动作,比如是get还是post请求
2正在请求的url(请求的地址
3请求头,包含一些客户端环境信息,身份验证信息,版本信息等
4请求体(请求正文,包含客户提交的查询字符串信息,表单信息等)
 
get:
一般用于信息获取,使用url传递参数,对所发送信息的数量也有限制,一般在2000个字符串
post:
一般用于修改服务器上的资源,对所发送信息的数量无限制
一个get请求执行一次和执行1万次是一样的
 
一个http响应由三部分组成:
1一个数字和文字组成的状态码,用来显示请求是成功还是失败,
2响应头,响应头也和请求头一样包含许多有用信息,例如服务器类型,日期时间,内容类型和长度
3响应体(响应正文,服务器传过来的字符串,http代码
 
http状态码由3位数字组成,首位数字定义了状态码的类型:
1xx:信息类,表示收到web浏览器请求,正在进一步处理中
2xx:成功,表示用户请求被争取接受,理解和处理例如:200
ok
3xx:重定向,表示请求没有成功,客户必须采取进一步动作
4xx:客户端错误,表示客户端提交的请求有错误,例如:404not
found。意味着请求中所引用的文档不存在
5xx:服务器错误,表示服务器不能完成对请求的处理 如:500
 

几种常见状态码

200:OK 请求成功 处理方式:获得响应的内容,进行处理

400:Bad Request 非法请求 处理方式:丢弃

401:Unauthorized 未授权 处理方式:丢弃

403:禁止 处理方式:丢弃

404:没有找到 处理方式:丢弃

500:服务器内部错误 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。

502:bad gate 网关错误

503:服务出错 由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。

请求报头:

Accept:用于指定客户端接受哪些类型的信息

Accept—Charset:指定客户端接受的字符集

Accept-Encoding:指定可接受的内容编码

Accept—Language:指定一种自然语言。

Authorization:请求报头域主要用于验证客户端有权查看某个资源

Host:指定被请求资源的Internet主机和端口号

响应报头:

Location:响应报头域用于重定向接受者到一个新的位置,Location响应报头域常用在更换域名的时候

Server:服务器用来处理请求的软件信息

http协议与常见状态码的更多相关文章

  1. HTTP协议及常见状态码

    超文本传输协议(HTTP)是用于传输诸如HTML的超媒体文档的应用层协议.它被设计用于Web浏览器和Web服务器之间的通信,但它也可以用于其他目的. HTTP遵循经典的客户端-服务端模型,客户端打开一 ...

  2. 了解一下Http常见状态码、Http协议的工作特点和原理、Http请求Post与Get的区别

    HTTP协议常见状态码状态码的作用负责标记客户端请求服务器的返回结果,标记服务器端的处理是否正常,通知出现的错误等等职责,借助客户端可以知道客户端是否正常请求服务端.五大类:1XX(信息类状态码,接收 ...

  3. HTTP协议、HTTP请求方法、常见状态码、HTTP消息

    HTTP协议 客户端请求,服务端响应.浏览器与服务器不建立持久连接,响应后连接失效. HTTP请求方法 一.GET GET方法用于获取请求页面的指定信息. 二.HEAD 除了服务器不能在响应里返回消息 ...

  4. 19. HTTP协议二:HTTP请求与响应、常见状态码

    HTTP请求与响应 HTTP请求 HTTP请求是指从客户端到服务器端的请求消息.HTTP请求主要由三部分构成,请求行.请求头(headers).body(请求数据). 上图是笔者用Charles抓包工 ...

  5. HTTP协议6之状态码--转

    HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了.  如果是做AJAX,REST,网络爬虫, ...

  6. http常见状态码有哪些?

    ajax常见面试题 1:什么是ajax?ajax作用是什么? 异步的javascript和xml AJAX 是一种用于创建快速动态网页的技术. ajax用来与后台交互 2:原生js ajax请求有几个 ...

  7. 计算机网络【9】—— HTTP1.0和HTTP1.1的区别及常见状态码

    一.HTTP1.0与HTTP1.1的区别 1.HTTP 1.1支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理 HTTP 1.0规定浏览器与服务器只保持 ...

  8. Python Requests库 Get和Post的区别和Http常见状态码

    (1)   在客户端,Get方式在通过URL提交数据,数据在URL中可以看到:POST方式,数据放置在HTML HEADER内提交. (2)   GET方式提交的数据最多只能有1024 Byte,而P ...

  9. http常见状态码及其解析

    HTTP状态码常见状态码及其解析 状态码 状态码英文名称 中文描述 100 Continue 继续.客户端应继续其请求 101 Switching Protocols 切换协议.服务器根据客户端的请求 ...

随机推荐

  1. gzip1

    经过GZIP压缩后页面大小可以变为原来的30%甚至更小.要实现GZIP压缩页面需要浏览器和服务器共同支持, 实际上就是服务器压缩,传到浏览器后浏览器解压并解析.浏览器那边不需要我们担心,因为现在绝大多 ...

  2. Node Koa2 完整教程

    请移步 http://cnodejs.org/topic/58ac640e7872ea0864fedf90

  3. 利用STM32CubeMX生成HID双向通讯工程

    使用开发板为正点原子ministm32 现在我们先使用HID descriptor Tool来生成我们需要的hid的 保存使用选择.H // D:\usb资料\HID\MSDEV\Projects\t ...

  4. Mysql索引,有哪几种索引,什么时候该(不该)建索引;SQL怎么进行优化以及SQL关键字的执行顺序

    索引(Index)是帮助MySQL高效获取数据的数据结构.提取句子主干,就可以得到索引的本质:索引是数据结构. 1.按照索引列值的唯一性,索引可分为唯一索引和非唯一索引 非唯一索引:B树索引 crea ...

  5. call 和 apply

    call和apply作用一样,都是为了转移this,区别在于传入参数的方式不同. this指当前方法所在的对象,如果方法的外面没有对象,则默认是window.由于闭包虽在调用的方法中,但是在创建的时候 ...

  6. get return value of python in shell

    from: https://stackoverflow.com/questions/2115615/assigning-value-to-shell-variable-using-a-function ...

  7. Linux磁盘空间不足处理方法

    维护Linux服务器正常使用需要经常删除Linux系统运行产生的系统日志和业务环境产生的debug日志文件.安装包等.本文主要描述如何通过脚本实现清理业务环境产生的 debug日志文件和上传或备份的打 ...

  8. TLS协议(安全传输层协议)

    概况 安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性.该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake).较低的层 ...

  9. ReultSet有什么作用和使用

    结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等. int col ...

  10. 关于 私有变量的访问问题【 java python]

    #coding:utf-8 class Teacher(): __clas = '' # 类私有变量同样遵循,只能在类内部访问,外部无法访问,但是类的方法可以访问同类所有对象私有变量这个规则. def ...