美文网首页
关于HTTP协议的那些东西!

关于HTTP协议的那些东西!

作者: JAVAandPython君 | 来源:发表于2019-02-19 19:25 被阅读0次

欢迎大家关注笔者的微信公众号:JAVAandPython君

关注后发送“领取资料”即可领取5T技术资源

web服务器和URL

我们首先来讲讲web服务器,Web服务器是指能够为发出请求的浏览器提供文档的程序。服务器是一种被动的程序,只有当我们从浏览器发出请求时才会响应。我们所说的写网站,到最后我们是需要把我们所写的代码部署到web服务器上,这样就可以让全世界的人都能够去访问你的网站,你那里面放置的所有的数据、资源,大家都可以下载。目前最主流的三个Web服务器是Apache,Nginx,IIS。

      然后一个就是我们的URL,例如:“http://www.baidu.com” 这就是一个url,它包含些什么呢?

协议:包括http,https等

域名或者ip地址:www.baidu.com这个就是域名,116.211.94.1这个就是ip地址。

端口号:这里可能没有体现出来,80是我们常用的端口号,程序必须使用端口号才能够让另一台计算机访问。

2

什么是HTTP?为什么要学它?

 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。

     HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

    其实就是我们服务器和客户端浏览器传输数据时的一种协议,你可以把它理解为计算机世界里面的一种规则,我们必须去遵守它。

    我们为什么要去学习它呢?这就有点废话了,我们遵守规则的前提是我们得了解这个规则,并且HTTP是Javaweb开发的基础,每一个请求和响应都是web开发最基本的操作,当我们学习web开发的时候,不去学http协议,我们会“打拳不练功,到老一场空”,当我们在web开发懵B的时候还不如好好的去学习http协议,不然花费在懵逼路上的时间比学http协议多得多。

3

HTTP的原理、作用、特点

原理:

HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

Web服务器根据接收到的请求后,向客户端发送响应信息。

HTTP默认端口号为80,但是你也可以改为8080或者其他端口。

作用:

       它能够使浏览器和客户端浏览器之间更加高效的传输数据,它不仅保证计算机正确快速的传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先展示(如文本先于图像)等。

特点:

       基于请求-响应模型,先有请求后有响应,如图:


4

HTTP的请求

    HTTP请求协议包括:请求行,请求头,请求体

    HTTP响应协议包括:响应行,响应头,响应体

那么什么是HTTP请求呢?

       当客户端连接上服务器后,向服务器请求某个web资源时,称之为客户端向服务器发送了一个http请求。

       请求包括一个请求行、若干个请求头、以及请求体内容,请求头和请求体内容之间要用空行隔开。

格式如下图(图来自网络,侵权必删):

例如下面就是一个get请求:

GET /hello.txt HTTP/1.1

User-Agent: curl/7.16.3libcurl/7.16.3OpenSSL/0.9.7lzlib/1.2.3

Host: www.example.com

Accept-Language: en, mi

5

HTTP请求方式有哪几种?

在开发中常见的请求方式有POST,GET,DELETE,PUT,我们主要讲一讲GET和POST。

   1.GET请求:向服务器特定的资源发出查询请求,一般是用于查询数据或者资源的请求中。

GET请求有几个特点

get请求查询的参数是可以在浏览器的地址栏中查看到的

请求的数据会附带在url之后,以?分割URL和传输数据,多个参数之间用&连接

例如:GET /get.html?name=jap&password=123 HTTP/1.1

2.POST请求:向指定资源提交数据进行处理请求(例如注册登录或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改

   POST的特点:

   post请求的数据会放置在HTTP请求体中

   例如:POST /post.html HTTP/1.1

            数据 name=jap&password=123放在请求中了

 3.两者的区别:在HTTP规范中,没有对URL的长度和传输的数据大小进行大小的限制,但是在实际的开发中,对于GET请求,特定的浏览器和服务器对URL的长度有限制。因此在使用GET请求时,会受到长度的限制

6

什么是请求头,请求体?

请求头用于描述客户端请求哪台主机,以及客户端的一些基本环境信息等,请求头是以键值对的方式来传递数据

如下面:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*;q=0.8 

Accept-Encoding:gzip, deflate, br

Accept-Language:zh-CN,zh;q=0.9

Cache-Control:max-age=0

Connection:keep-alive

Cookie:BIDUPSID=9D9C53E416CD7FF75D06ECDD54E96CBB; PSTM=1543042511; BD_UPN=12314753; __cfduid=d7051da25724d1e9caf4c4f142767136e1547043423; MCITY=-43%3A; ispeed_lsm=0; 

Host:www.baidu.com

Upgrade-Insecure-Requests:1

User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36

请求体代表着浏览器在post请求方式中传递给服务器的参数,请求体中的每一个数据都是采用键值对的形式,多个参数用&连接,另外服务器在接收到请求体后会单独对其解析。

7

HTTP的响应

一个HTTP响应代表服务器向客户端回送的数据,它包括一个响应行,若干个响应头,以及响应体,其中的一些响应头和响应体都是可选的,响应头和响应体内容之间需要用空行隔开。

响应头用于描述服务器的基本信息,以及数据的描述,通过这些数据的描述,可以通知客户端怎么处理它待会回送的数据

例如下面就是一个响应头:

HTTP/1.1 200 OK

Date: Mon, 27 Jul 2019 12:28:53 GMT

Server: Apache

Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT

ETag: "34aa387-d-1568eb00"

Accept-Ranges: bytes

Content-Length: 51

Vary: Accept-Encoding

Content-Type: text/plain

响应行中包含了HTTP协议的版本,以及用于描述服务器对请求的处理结果

例如    HTTP/1.1  200  OK

           协议/版本  状态码   状态码描述

 这里来补充一下状态码:它是服务器和浏览器之间确定状态的固定数字(200:请求成功,302:请求重定向,404:请求资源不存在,500:服务器内部发生错误)

响应体代表着服务器向客户端浏览器回送的正文

例如:

<!DOCTYPE html>

<!--STATUS OK-->

HTTP_百度搜索

省略...

相关文章

  • 关于HTTP协议的那些东西!

    欢迎大家关注笔者的微信公众号:JAVAandPython君 关注后发送“领取资料”即可领取5T技术资源 web服务...

  • HTTP/1.1协议知识小结

    1.关于HTTP协议 ​ HTTP协议(HyperText Transfer Protocol)及超...

  • 关于HTTP协议

    关于HTTP协议 HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输...

  • 关于http协议

    HTTP简介 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写; H...

  • 关于 HTTP 协议

    HTTP 协议广泛用在客户端浏览器和服务器之间进行传输数据。它是一种基于 TCP 连接的一个无状态的应用层协议。H...

  • 关于HTTP协议

    转载自:关于HTTP协议,一篇就够了

  • 关于HTTP协议

    定义 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维...

  • 关于HTTP协议

    HTTP协议---超文本传输协议 在iOS开发中使用HTTP协议是很常见的,但是如果是刚开始学习或者刚步入的人并不...

  • 关于HTTP协议

    HTTP协议规定浏览器和服务器之间是如何交互的 版本 HTTP 1.0:RFC-1945 HTTP 1.1:RFC...

  • HTTP1.0、HTTP1.1、HTTP2和HTTPS的对比

    [TOC] 一、HTTP协议 关于HTTP协议的介绍,可以参考文章:HTTP 协议入门 - 阮一峰的网络日志 HT...

网友评论

      本文标题:关于HTTP协议的那些东西!

      本文链接:https://www.haomeiwen.com/subject/ijofyqtx.html