陌生又熟悉的HTTP协议

一.HTTP是什么?
    1.HTTP协议:HyperText Transfer Protocol,超文本传输协议
    2.因特网上应用最为广泛的一种网络传输协议,用于从万维网服务器传输超文本到本地浏览器的传输协议,
    所有的www文件必须遵守这个标准,
    3.HTTP是一个基于TCP/IP通信协议来传递数据
二.HTTP有哪些特点?
    1.HTTP协议工作在客户端-服务端架构上(b/s架构,这里的客户端仅指浏览器)
    2.浏览器作为HTTP客户端通过url向HTTP服务端即Web服务器发送所有请求
    3.HTTP默认端口号为80,但是你也可以改为8080或者其他端口
    4.HTTP是无连接的,即每次连接只处理一个请求,服务器处理完客户的请求,并收到客户的应答后,即断开连接,
    采用这种方式可以节省传输时间(用完即走,再用时必须重新发起请求,不存在占着茅坑的现象)
    5.HTTP是无状态的,即对于事务处理没有记忆能力,如果后续处理需要前面的信息,则必须重传,
    这样可能导致每次连接传送的数据量增大,另一方面,在服务器不需要先前信息时它的应答就较快
    (这意味着每个请求都是独立的,即便是两个一模一样的请求也会被当做是两个请求)
    6.HTTP是媒体独立的:即只要是客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送
    扩展:浏览器记住密码,和记录访问IP是如何实现的?

三.HTTP请求有哪几部分组成?
    一个HTTP请求一般有四部分组成:
    1.HTTP请求的方法,比如是get还是post请求
    2.正在请求的url,总得知道请求的地址是什么吧
    3.请求头,包含一些客户端环境信息,身份验证信息等
    4.请求体,也就是请求正文,请求正文中可以包含客户端提交的查询信息,表单信息
    注意:一般来说请求头和请求体之间有一个空行,这个空行非常重要,它表示请求头已经结束,
    接下来的内容便是请求体

四.HTTP的请求过程是什么样子的?
    一个完整的HTTP请求过程,一般有以下七个步骤:
    1.建立TCP连接接
    2.Web浏览器向Web服务器服务器发送请求命令
    3.Web浏览器发送请求头信息
    4.Web服务器应答
    5.Web服务器发送应答头信息
    6.Web服务器向浏览器发送数据
    7.Web服务器关闭TCP连接

五.什么是get和post请求?
    get请求一般用于获取服务器的信息,它有以下特点:
    1.使用url传递参数,也就是参数是可见的
    2.对发送信息的数量也有限制,一般在2000个字符左右
    post请求一般用于修改服务器上的资源,它有以下特点:
    1.不使用url传递参数,即参数对用户是不可见的
    2.对发送的信息数量是无限制的
    注意:表单一般用post方式提交,post请求的参数一般都嵌入在请求体中,对用户是不可见的,
    不过可以使用工具拦截,如fiddler等

六.HTTP响应有哪几部分组成:
    一个HTTP请求一般有三部分组成:
    1.一个数字或文字组成的状态码,用来显示请求成功还是失败
    2.响应头,包含的信息有服务器类型,日期,时间见内容类型和长度等
    3.响应体,也就是响应的正文

七.HTTP的状态码有哪些类型?
     HTTP的状态码一般有3位数字构成,其类型如下:
    1xx:信息类,表示收到Web浏览器请求,正在进一步处理中
    2xx:成功,表示用户请求被正确接收,理解和处理
    3xx:重定向,表示请求没有成功,客户必须采取进一步的动作
    4xx:客户端错误,表示客户端提交的请求有错误,如404 NOT Found,请求的文件不存在
    5xx:服务器错误,表示服务器不能完成对请求的处理

 

原文地址:https://www.cnblogs.com/chengzi-he/p/9443823.html