一、HTTP 协议概述

HTTP协议采用了请求/响座模型。 客户端向服务器发送—个请求,请求头包含请求的方法、URT.、协议版本、以以 及包含请求修饰符。客户信息和内容的类似于MIME的消息结构。 服务器以一个状态行作为响应,响应的内容包括消息协议的版本, 成功或者错误编码加上服务器信息、实体元信息以及可能的实体内容。

HTTP 已经演化出 了很多版本,它们中的大部分都是向下兼容的。

(1) HTTP/0.9;已讨过时。只接受 GET —种请求方法,没有在通讯中指定版本号,且不支持请求头。 由干该版本不支持 POsT方法,所以客户端无法向服务器传递太多信息。

(2)HTTP/1.0∶ 这是第一个在通讯中指定版本号的 HTTP 协议版本,至今仍被广泛采用, 特别是在代理服务器中。

(3)HTTP/1.1∶ 当前版本。持久连接被默认采用, 并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度。

二、HTTP请求流程

用户在浏览器输入URL访问时,发起HTTP请求报文,请求中包括请求行、请求头、请求体,服务器收到请求后返回响应报文,包括状态行、响应头、响应体。

三、TCP建立连接的过程

三次握手讲解∶

1.客户端发送位码为syn= 1,随机产生seqnumber=1234567的数据包到服务器,服务器由 SYN=1知道客户端要求建立联机(客户端∶ 我要连接你)

2.服务器收到请求后要确认联机信息,向A发送ack number=(客户端的seq+1),syn=1,ack=1,随机产生 seq=7654321的包(服务器∶好的,你来连吧)

3.客户端收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,客户端会再发送ack number=(服务器的 seq+1).ack=1,服务器收到后确认seq值与ack=1则连接建立成功。(客户端∶ 好的,我来了)

四、TCP断开连接的过程

TCP关闭连接过程∶

1.Client向Server发送FIN包,表示Client主动要关闭连接,然后进入FIN WAIT 1状态,等待Server返回ACK包。此后Client不能再向Server发送数据,但能读取数据。

2.Server收到FIN包后向Client发送ACK包,然后进入CLOSE WAIT状态,此后 Server不能再读取数据,但可以继续向 Client发送数据。

3.Client收到Server返回的ACK包后进入 FIN WAIT 2状态,等待Server发送FIN包。

4.Server完成数据的发送后,将FIN包发送给Client,然后进入LAST ACK状态,等待Client返回ACK包,此后Server既不能读取数据,也不能发送数据。

5.Client收到FIN包后向Server发送ACK包,然后进入TIME WAIT状态,接着等待足够长的时间(2MSL)以确保Server接收到ACK包,最后回到CLOSED状态,释放网络资源。

6.Server收到Client返回的ACK包后便回到CLOSED状态,释放网络资源

五、HTTP方法

HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法 (HTTP method)。每条 HTTP 请求报文都包含一个方法,

告诉服务器要执行什么动作, 包括∶ 获取一个页面,运行一个网关程序,删除一个文件等。最常用的获取资源的方法是 GET、POST。

HTTP          方法                        描述

GET                                请求获取 Request-URI 所标识的资源

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

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

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

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

六、HTTP 状态码

HTTP 状态码(HTTP Status Code)是用以表示网页服务器 HTTP 响应状态的 3 位数字代码,当浏览器请求某一 URL时,服务器根据处理情况返回相应的处理状态。

状态码首位 已定义范围 分类
1xx 100-101 信息提示
2xx 200-206 成功
3xx 300-305 重定向
4xx 400-415 客户端错误
5xx 500-505 服务器错误

HTTP 常见状态码状态码

状态码 功能描述
200 一切正常
301 永久重定向
302 临时重定向
401 用户名或密码错误
403 禁止访问(客户端IP地址被拒绝)
404 文件不存在
414 请求URI头部过长
500 服务器内部错误
502 无效网关
503 当前服务不可用
504 网关请求超时

了解HTTP基本知识板块的更多相关文章

  1. 手工制作的年份Java老A发售量

    Java老A这本书是写了很长的时间,昨天终于开始china-pub.京东.活动当天发售的猫,现在,简称买卖,他当然还没有到. 有兴趣的人能够去看看哈(兴许其它站点地址也会在这里公开): china-p ...

  2. 2018.10.23 NOIP训练 Leo的组合数问题(组合数学+莫队)

    传送门 好题. 考察了莫队和组合数学两个知识板块. 首先需要推出单次已知n,mn,mn,m的答案的式子. 我们令f[i]f[i]f[i]表示当前最大值为第iii个数的方案数. 显然iii之后的数都是单 ...

  3. 【转】学习Python的19个资源

    原文链接:[译]学习Python编程的19个资源 用Python编写代码一点都不难,事实上它一直被赞誉为最容易学的编程语言.如果你准备学习web开发, Python是一个不错的开始,甚至想做游戏的话, ...

  4. 学习 Python 编程的 19 个资源 (转)

    学习 Python 编程的 19 个资源 2018-01-07 数据与算法之美 编译:wzhvictor,英文:codecondo segmentfault.com/a/119000000418731 ...

  5. web前端开发-博客目录

    web前端开发是一个新的领域,知识连接范围广,处于设计与后端数据交互的桥梁,并且现在很多web前端相关语言标准,框架库都在高速发展.在学习过程中也常常处于烦躁与迷茫,有时候一直在想如何能够使自己更加系 ...

  6. NLP教程(5) - 语言模型、RNN、GRU与LSTM

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  7. NLP教程(6) - 神经机器翻译、seq2seq与注意力机制

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  8. NLP教程(7) - 问答系统

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  9. 自己一晚上总结的php基础知识!好累。好充实。

    为了巩固自己的基础提升自己的技术.花了一晚上的时间结合w3c上的非常基础的东西,和自己的部分见解,写了不少,望大神们指正,指导.. <?php /* 这段话必须要写在开篇啊!死老猫,你又刺激我! ...

随机推荐

  1. Nat Comm | 中科院动物所张勇团队合作揭示动物中DNA转座子介导基因重复的机制

    1950年Barbara Mclintock 首次在玉米中发现转座子(TEs),并由此获得诺贝尔奖.尽管长期被认为是垃圾DNA,但现在TEs被广泛认可是宿主基因组演化的重要推动力.它们可引起包含基因重 ...

  2. [TensorFlow2.0]-正则化

    本人人工智能初学者,现在在学习TensorFlow2.0,对一些学习内容做一下笔记.笔记中,有些内容理解可能较为肤浅.有偏差等,各位在阅读时如有发现问题,请评论或者邮箱(右侧边栏有邮箱地址)提醒. 若 ...

  3. excel的导入与导出---通用版

    excel的导入与导出---通用版 web项目关于导入导出的业务场景很常见,最近我就又遇到了这个业务场景.这次将最近半个月做的导入导出总结一下 使用的pom如下,主要还是阿里巴巴的easyexcel依 ...

  4. Eclipse带参数调试的方法

    下面是体现带参数调试的一个代码demo,首先输出参数的数量,然后依次输出每个参数. public class ArgsEx { public static void main(String[] arg ...

  5. 【笔记】偏差方差权衡 Bias Variance Trade off

    偏差方差权衡 Bias Variance Trade off 什么叫偏差,什么叫方差 根据下图来说 偏差可以看作为左下角的图片,意思就是目标为红点,但是没有一个命中,所有的点都偏离了 方差可以看作为右 ...

  6. 深入理解-dl_runtime_resolve

    深入理解-dl_runtime_resolve 概要 目前大部分漏洞利用常包含两个阶段: 首先通过信息泄露获取程序内存布局 第二步才进行实际的漏洞利用 然而信息泄露的方法并不总是可行的,且获取的内存信 ...

  7. epoll水平/边缘触发模式下阻塞/非阻塞EPOLLOUT事件触发条件及次数

    在IO多路复用技术中,epoll默认的事件触发模式为Level_triggered(水平触发)模式,即当被监控的文件描述符上有可读/写事件发生时,epoll_wait()会通知处理程序去读写.如果这次 ...

  8. docker加速器,设置cdn

    添加加速器 vim /etc/docker/daemon.json 添加如下内容 { "registry-mirrors": ["https://registry.doc ...

  9. RHEL 7 “There are no enabled repos” 的解决方法

    RHEL 7 "There are no enabled repos"  的解决方法 [root@system1 Desktop]# yum install squidLoaded ...

  10. Centos7 出现Welcome to emergency mode!【紧急模式】

    Centos7 出现Welcome to emergency mode![紧急模式] 做mount挂载时,修改了  /etc/fstab 文件,导致Centos7重启时出现如下图所示错误:   输入r ...