http的请求过程。

查了一些资料个人理解http请求是建立在3次tcp协议之后http才正式开始请求数据,如果说的有问题还请见谅看看就行。
    
    1.先建立tcp连接,TCP就像人类的语言一样,要使计算机连成的网络能够互通信息,需要有一组共同遵守的通信标准,这就是网络协议,不同的计算机之间必须使用相同的通讯协议才能进行通信
    
    2.在http请求之前会进行3次TCP连接,TCP会向服务器发送一次请求,好理解点就是统一下语言,你能听懂我说的吗,也就是第一次握手。
    
    3.在服务器接收到浏览器的请求,服务起开始响应浏览器,好理解点我能听懂你说的,您能听董我说的吗。这就是第二次的握手。
    
    4.浏览器在接收到服务器响应后,浏览器开始发送请求,好理解点就是,嗯 可以,我可以问你个问题吗,这就是第三次握手。
    
    5.建立TCP连接之后,发起HTTP请求。

    6.http请求由三部分组成:请求行 请求头和请求正文

        
    请求行:用于描述客户端的请求方式,请求的资源名称以及使用的HTTP协议的版本号(例:GET/books/java.html HTTP/1.1)

      请求头:用于描述客户端请求哪台主机,以及客户端的一些环境信息等

      注:这里提一个请求头 Connection,Connection设置为 keep-alive用于说明 客户端这边设置的是,本次HTTP请求之后并不需要关闭TCP连接,这样可以使下次HTTP请求使用相同的TCP通道,节省TCP建立连接的时间

      请求正文:当使用POST, PUT等方法时,通常需要客户端向服务器传递数据。这些数据就储存在请求正文中(GET方式是保存在url地址后面,不会放到这里)

    7..服务器端响应http请求,得到服务器返回的数据

    HTTP响应也由三部分组成:状态码,响应头和实体内容

      状态码:状态码用于表示服务器对请求的处理结果

      列举几种常见的:200(没有问题) 302(要你去找别人) 304(要你去拿缓存) 307(要你去拿缓存) 403(有这个资源,但是没有访问权限) 404(服务器没有这个资源) 500(服务器这边有问题)

      若干响应头:响应头用于描述服务器的基本信息,以及客户端如何处理数据

      实体内容:服务器返回给客户端的数据

    8、Ajax的请求过程。

    1.创建XmlHttpRequest对象,ActiveXObject兼容IE浏览器

      let  xhr = XMLHTTPRequest()

      let xhr = ActiveXObject('Mircosoft.XMLHTTP');

    2.创建与服务器的连接的请求

      xhr.send(get, url, false)

    3.监听对象状态的改变

      xhr.onReadyState()

    4.向服务器发送数据

      xhr.send()

    5.处理请求回来的数据。

      callback()
 

HTTP请求的完整过程可以分为以下几个步骤: 1. 建立连接:客户端使用TCP协议与服务器建立连接。首需要解析URL,获取服务器的主机地址和端口号。然后客户端会发送一个SYN包给服务器,服务器收到后返回一个SYN-ACK包给客户端,最后客户端发送一个ACK包确认连接建立。 2. 发送请求头:连接建立后,客户端会发送一个HTTP请求给服务器。请求包含请求行、请求头和请求体。请求行包括请求方法(GET、POST等)、请求的URI(Uniform Resource Identifier)和HTTP协议版本。请求头包含一些附加的信息,如用户代理、Accept-Language、Cookie等。 3. 服务器响应:服务器接收到请求后,会进行处理并生成相应的HTTP响应。响应包括响应行、响应头和响应体。响应行包括HTTP协议版本、状态码和状态消息。响应头包含服务器信息、内容类型、内容长度等相关信息。响应体包含实际的响应数据。 4. 接收响应:客户端接收到服务器的响应后,会进行解析和处理。根据状态码判断请求是否成功,并根据响应头中的信息进行相应的处理,如获取内容长度、内容类型等。 5. 处理响应:根据响应头中的内容类型,客户端可以选择不同的方式来处理响应数据。常见的内容类型包括HTML、JSON、XML等。客户端可以将响应数据展示给用户,或者进行进一步的处理,如解析JSON数据、解析XML数据等。 6. 关闭连接:处理完响应后,客户端和服务器会关闭连接。客户端发送一个FIN包给服务器,服务器收到后返回一个ACK包给客户端,最后服务器发送一个FIN包给客户端,客户端收到后返回一个ACK包给服务器,双方完成连接的关闭。 以上就是HTTP请求的全过程。其中,客户端和服务器之间的通信是通过TCP协议进行的。PHP是一种服务器端脚本语言,可以用来处理HTTP请求和生成HTTP响应。在PHP中,可以使用内置的函数和扩展来处理HTTP请求和响应,如$_GET、$_POST、header()函数等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值